ARG 构建参数
格式:ARG <参数>[=<默认值>]
构建参数和 ENV 的效果一样,都是设置环境变量,不同的是,ARG 所设置的是构建环境的环境变量,将来在容器运行时是不存在这些环境变量的。
Dockerfile
中的 ARG
指令是定义参数名称,以及定义其默认值。该默认值可以在构建命令 docker build
中用 --build-arg <参数名>=<值>
来覆盖。
ARG 指令有生效范围,如果在 FROM
指令之前指定,那么只能用于 FROM
指令中。
使用上述 Dockerfile
会发现无法输出 ${DOCKER_USERNAME}
变量的值,想要正常输出,必须在 FROM 之后再次指定 ARG
对于多阶段构建,尤其要注意这个问题
上述 Dockerfile
中两个 FROM
指令都可以使用 ${DOCKER_USERNAME}
,对于在各个阶段中使用的变量都必须在各个阶段分别指定。
最后更新于
这有帮助吗?