一些上下文:
-我是一个Docker
新手(从1天开始),
-我有一个小的VM
运行linux/AMD
,我拥有一个M1 Mac (ARM
),
-我还想使用容器为Dev(而不是虚拟环境)。
为prod
构建我的容器,在M1 Mac上,我有以下Dockerfile
:
参见FROM
中的--platform=linux/amd64
参数,它有效(=我能够部署)。
FROM --platform=linux/amd64 python:3.10-slim-bullseye
WORKDIR /usr/src/app
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
ENV FLASK_ENV=development
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["flask", "run"]
然而,我怎么能在我的Dockerfile
中说不使用--platform=linux/amd64
如果我想为本地开发者做些什么?
我看过一些关于SO的帖子,在dockerfile
中有条件,但只有RUN
命令。
有什么想法或最佳实践吗?
谢谢。
我相信你可以在docker buildx build或docker build上使用--platform
参数来设置平台,以构建将在Dockerfile
内的任何FROM
调用中使用的映像,如果没有指定其他内容(参见Dockerfile FROM),如文档中所述。
Dockerfile
中的TARGETPLATFORM变量来获取它是为哪个平台构建的。如果你想改变默认的构建平台,你可以设置DOCKER_DEFAULT_PLATFORM环境变量。