tiangolo / full-stack-fastapi-template

Full stack, modern web application template. Using FastAPI, React, SQLModel, PostgreSQL, Docker, GitHub Actions, automatic HTTPS and more.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mac M1 Docker error

renja-g opened this issue · comments

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

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.

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

@renja-g this was handled in #710 🤓

@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. 💐

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.