在 Dockerfile CMD 中使用 docker ARG
Posted
技术标签:
【中文标题】在 Dockerfile CMD 中使用 docker ARG【英文标题】:Use docker ARG in Dockerfile CMD 【发布时间】:2022-01-20 09:47:33 【问题描述】:如何在 docker cmd 命令中使用 ARG?
FROM python:3.6.8
ARG profile=production
ENV profile $profile
ENTRYPOINT [ "export SETTINGS=/opt/$profile.cfg" ]
CMD [ "python", "-m" ,"acalls_clasiffier"]
这是出现的错误:
exec: "export SETTINGS=/opt/$profile.cfg": stat export SETTINGS=/opt/$profile.cfg: 没有这样的文件或目录:未知
【问题讨论】:
【参考方案1】:这有很多问题:
不使用 exec 语法将 args 分隔为单独的数组条目 尝试使用带有 exec 语法的变量的 shell 扩展 shell 命令的 exec 语法(导出)但简单的答案是将环境变量定义为 Dockerfile 中的 ENV
,或者最好在 compose 文件或 Kubernetes 清单中定义为运行时设置,这样您就不会将配置注入到映像中。由于您只提供了 Dockerfile,因此看起来像:
FROM python:3.6.8
ARG profile=production
ENV profile $profile
ENV SETTINGS /opt/$profile.cfg
CMD [ "python", "-m" ,"acalls_clasiffier"]
【讨论】:
以上是关于在 Dockerfile CMD 中使用 docker ARG的主要内容,如果未能解决你的问题,请参考以下文章