Dockerfile中ARG和FROM如何相互作用

Dockerfile中ARG和FROM如何相互作用

鲜花的主人 296 2022-05-20

FROM指令支持在第一个FROM之前声明的ARG指令变量,如下:

[root@VM-32-194-centos test]# cat Dockerfile
ARG  VERSION=latest
FROM base:${VERSION}
CMD  /home/app

FROM test:${VERSION}
CMD  /home/test

在FROM之前声明的ARG,是在构建阶段之外的,所以不能在FROM之后的任何指令中使用它。要使用在第一个FROM之前声明的ARG的默认值,需要在构建阶段内使用一个没有值的ARG指令,如下

[root@VM-32-194-centos test]# cat Dockerfile
ARG VERSION=latest
FROM busybox:$VERSION
ARG VERSION
RUN echo $VERSION > image_version