我正在为docker映像使用两阶段构建;
我想在第二阶段配置一个值,所以我在考虑使用ARG
。
但是我不确定--build-arg
命令行选项是否适用于第一阶段,因此我想到了
### First stage
FROM some_base_image
ARG MYUSERNAME=foo
### Second stage
FROM another_base_image
ARG MYUSERNAME=$MYUSERNAME
但这没用;
关于如何通过build
命令行传递某些--build-arg
的建议,这些建议应该从第二阶段开始使用?
答案 0 :(得分:0)
ARG指令具有范围,在文档中对此进行了描述:https://docs.docker.com/engine/reference/builder/#scope
ARG指令在定义它的构建阶段结束时超出范围。要在多个阶段使用arg,每个阶段都必须包含ARG指令。
因此您可以在多个阶段中使用ARG,只需要再次使用ARG
指令即可,如示例所示:
FROM busybox
ARG SETTINGS
RUN ./run/setup $SETTINGS
FROM busybox
ARG SETTINGS
RUN ./run/other $SETTINGS