Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mac M1 Docker error #707

Closed
renja-g opened this issue Mar 13, 2024 · 7 comments
Closed

Mac M1 Docker error #707

renja-g opened this issue Mar 13, 2024 · 7 comments

Comments

@renja-g
Copy link

renja-g commented Mar 13, 2024

On my M1 I get the following error when trying to run docker-compose.yml via docker compose up -d:

 ! backend The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 0.0s
@dudil
Copy link
Contributor

dudil commented Mar 13, 2024

Hi @renja-g, a quick fix would be to add the following line into the docker-compose.yml backend section:

...
...
build:
      context: ./backend
      args:
        INSTALL_DEV: ${INSTALL_DEV-false}
    
    platform: linux/amd64 # Add this line for M1 Macs
...
...

@tiangolo , I will issue a PR for quickly fix that if you don't mind.

I'm not sure why the base image you are building from tiangolo/uvicorn-gunicorn is marked as supporting only amd64,
The base image of that one is python:3.10 which also supports arm64.

dudil added a commit to dudil/full-stack-fastapi-template that referenced this issue Mar 13, 2024
@tiangolo
Copy link
Member

Thanks @dudil! 🙇 Thanks for the help and the fix!

@renja-g this was handled in #710 🤓

@dudil
Copy link
Contributor

dudil commented Mar 13, 2024

@tiangolo - quick look for the root cause I found this is an issue with the GitHub action of uvicorn-gunicorn-docker.

There is an open PR for fixing it but I'm not sure how much updated it is or still relevant.

However, seems like @tedvim who create the PR made a huge step forward and build a full registry of python stack images which are already multi-arch and updated https://github.com/multi-py
Switching the backend base image to be based on https://github.com/multi-py/python-gunicorn + fastapi, could push your amazing project forward and remove the need for you to maintain also the docker images.
I'll be more than happy to assist and make the fix if you think the same. 💐

@github-actions github-actions bot removed the answered label Mar 13, 2024
@billzhong
Copy link
Contributor

Hi @dudil , seems like multi-arch support is added: tiangolo/uvicorn-gunicorn-fastapi-docker#273 . So your patch is not longer need. It would be nice to remove it to improve the performance at Apple Silicon.

@klipdassie
Copy link

Hi @dudil , seems like multi-arch support is added: tiangolo/uvicorn-gunicorn-fastapi-docker#273 . So your patch is not longer need. It would be nice to remove it to improve the performance at Apple Silicon.

Thank you for pointing that out. I was using a non-Apple ARM system where the Docker Engine did not have the possibility to fallback to the AMD64 architecture, causing the image build to fail. After removing the patch, everything worked perfectly.

dudil added a commit to dudil/full-stack-fastapi-template that referenced this issue Jul 9, 2024
Fixes fastapi#707, remove patch as image now support ARM arch.
@dudil dudil mentioned this issue Jul 9, 2024
@dudil
Copy link
Contributor

dudil commented Jul 9, 2024

Hi @klipdassie, thank you for that note 💐
As @billzhong had mentioned the base image now supports multi-arch so this patch is indeed no longer needed.
@tiangolo - I will remove it with a new PR so this issue could be resolved.

dudil added a commit to dudil/full-stack-fastapi-template that referenced this issue Jul 9, 2024
@tiangolo
Copy link
Member

It seems this is now handled, so I think we can close this issue now. 🚀 🍰

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants