在Dockerfile中使用ARG和ENV

托马斯·赫希

我正在学习如何在Dockerfiles中使用ARG和ENV。我有这个简单的Dockerfile:

ARG my_arg
ARG other_arg=other_default

FROM centos:7

ENV MY_ENV $my_arg
ENV OTHER_ENV $other_arg

CMD echo "$MY_ENV $OTHER_ENV"

当我构建它时: docker build --build-arg my_arg=my_value

并运行它: docker run <resulting-image>

我没有看到预期的输出,这将是

my_value other_default

相反,我看到了空字符串。我究竟做错了什么?

大卫·迷兹

在Dockerfile中,每一FROM行都会启动一个新映像,并通常会重置构建环境。如果您的图片需要指定ARGs,则需要FROM行之后;如果是多阶段构建,则需要根据需要在每个映像中重复它们。ARG第一个之前的命令FROM仅用于允许该FROM行中的变量有用,但否则不能使用。

Dockerfile文档中的了解ARG和FROM之间的交互方式将对此进行进一步讨论

FROM centos:7

# _After_ the FROM line
ARG my_arg
ARG other_arg=other_default
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章