使用 Apple M1 Max 时 Docker 上的 Python“exec /usr/local/bin/python3: exec format error”

mua*_*aiz 4 linux docker python-3.8 apple-m1

当我搬到我的新 Mac M1 Max 上时,我的 docker 镜像就工作正常了。即使使用我的 M1 Max,我也已经安装了 docker 并成功创建了映像,并将其推送到 AWS ECR。现在,当我运行该图像时,它不会运行但会引发错误

exec /usr/local/bin/python3: exec format error
Run Code Online (Sandbox Code Playgroud)

我的 Dockerfile 如下所示,但还没有运气。每次都是同样的错误。我知道在 Mac M1 Max 上构建 docker 镜像并运行它们并不简单,但在许多 StackOverflow 答案中我发现下面的添加有--platform=linux/arm64帮助,但对我来说还没有帮助。

FROM --platform=linux/amd64 python:3.8-slim-buster
# FROM --platform=linux/arm64 python:3.8-slim-buster (tried this one as well)
# FROM --platform=linux/arm64/v8 python:3.8-slim-buster (tried this one as well)


WORKDIR /project
COPY ./requirements.txt .

RUN apt-get -qq update 
RUN pip3 --quiet install --requirement requirements.txt \
         --force-reinstall --upgrade

COPY . .

Run Code Online (Sandbox Code Playgroud)

mua*_*aiz 11

我只需添加即可使其工作as build。所以第一行看起来像

FROM --platform=linux/amd64 python:3.8-slim-buster as build
Run Code Online (Sandbox Code Playgroud)

我不太确定上面的行和我之前使用的行有什么区别,但docker 文档as build中提到了一些。现在工作正常了