docker build时如何打印环境变量env或构建参数ARG的当前实际值
Docker build阶段打印ARG/环境变量实际值的方法
- 方法1:在Dockerfile对应位置插入打印指令
在你需要排查变量值的构建步骤前,加入RUN指令直接输出目标变量,示例如下:
注意:如果是多阶段构建,必须将该# 假设你要排查名为APP_VERSION的ARG和名为NODE_ENV的ENV RUN echo "ARG APP_VERSION实际值: $APP_VERSION" && echo "ENV NODE_ENV实际值: $NODE_ENV" # 如果需要查看当前阶段所有生效的变量,可直接执行printenv # RUN printenvRUN指令放在变量生效的对应阶段内,ARG的作用域仅覆盖定义它的单个构建阶段,跨阶段未重新声明的ARG无法获取到值。 - 方法2:调整构建命令避免输出被折叠
默认Docker BuildKit会折叠RUN指令的输出,执行构建命令时加上--progress plain参数即可看到完整的打印日志,示例命令:docker build --build-arg APP_VERSION=v1.0.0 --progress plain .
为什么ARG指令看不到实际传入值?ARG仅用于声明变量和默认值,不会将运行时传入的实际值输出到构建日志,必须通过执行RUN命令才能获取构建阶段生效的真实值。
内容的提问来源于stack exchange,提问作者agapanthusblue
相关产品推荐
相关产品推荐

