Dockerfile 如下:
ARG BASE_IMAGE
ARG VARIABLE=test
FROM ${BASE_IMAGE}
ENV VARIABLE=$VARIABLE
但是在打包的镜像起的容器里 echo $VARIABLE
却是空。
原来是因为:
ARG 指令有生效范围,如果在 FROM 指令之前指定,那么只能用于 FROM 指令中。
因此需要修改 Dockerfile 为:
ARG BASE_IMAGE
FROM ${BASE_IMAGE}
ARG VARIABLE=test
ENV VARIABLE=$VARIABLE