我正在学习如何在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
行都会启动一个新映像,并通常会重置构建环境。如果您的图片需要指定ARG
s,则需要在该FROM
行之后;如果是多阶段构建,则需要根据需要在每个映像中重复它们。ARG
第一个之前的命令FROM
仅用于允许该FROM
行中的变量有用,但否则不能使用。
Dockerfile文档中的了解ARG和FROM之间的交互方式将对此进行进一步讨论。
FROM centos:7
# _After_ the FROM line
ARG my_arg
ARG other_arg=other_default
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句