首页/云/Docker 容器速查/ARG 构建期变量与 --build-arg
镜像与构建107 条

ARG 构建期变量与 --build-arg

声明只在构建期存在的变量,用 --build-arg 传入值或使用默认值;不会进入运行环境,适合版本号、下载地址等构建参数。

Docker 容器速查云更新于 2026-10-12
用途构建期参数
语法ARG NAME[=默认值] + docker build --build-arg NAME=值
与 ENV 区别ARG 不持久化到运行环境

示例

示例
ARG APP_VERSION=dev
RUN printf 'version=%s\n' "$APP_VERSION" > /app/VERSION

# 构建时传值
docker build --build-arg APP_VERSION=1.2.3 -t app/web:1.2.3 .
--build-arg 传入的值会记录在镜像构建历史中,任何密钥都不应通过 ARG 传递。

易错点

  • 只在 Dockerfile 里声明但构建时未传值的 ARG 使用默认值;漏传时不会报错,构建结果可能悄悄地不对
  • ARG 作用域限制在声明的阶段内,跨阶段使用要每个阶段各自声明

数据来源与参考

  • Docker 官方文档:Dockerfile ARG(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌