docker:分两阶段构建的变量

时间:2018-08-28 07:34:08

标签: docker dockerfile

我正在为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的建议,这些建议应该从第二阶段开始使用?

1 个答案:

答案 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