Docker语言 - 如何从Dockerfile有条件地为M1 Mac或AMD构建镜像?



一些上下文:
-我是一个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环境变量。

相关内容

  • 没有找到相关文章

最新更新