| 规则 | ARG 作用域按阶段划分 |
|---|---|
| 重声明 | FROM 后写 ARG NAME(不赋值)继承构建传入值 |
| 未声明 | 阶段内直接引用 = 空值 |
示例
示例
ARG BASE=node:20-alpine
FROM ${BASE}
ARG BASE
ARG APP_VERSION=dev
RUN echo "base=$BASE version=$APP_VERSION"多阶段分别使用时,每个阶段都要各自重声明;构建日志不会提示这个空值问题。
FROM 之前声明的 ARG 只对 FROM 行生效;要在阶段内部使用同名值,必须在 FROM 之后重新写一条不带赋值的 ARG。
| 规则 | ARG 作用域按阶段划分 |
|---|---|
| 重声明 | FROM 后写 ARG NAME(不赋值)继承构建传入值 |
| 未声明 | 阶段内直接引用 = 空值 |
ARG BASE=node:20-alpine
FROM ${BASE}
ARG BASE
ARG APP_VERSION=dev
RUN echo "base=$BASE version=$APP_VERSION"