了解ARG和FROM之间的交互方式
FROM指令支持任何在第一个FROM之前出现的ARG指令所声明的变量。
ARG CODE_VERSION=latest
FROM base:${CODE_VERSION}
CMD /code/run-app
FROM extras:${CODE_VERSION}
CMD /code/run-extras
在FROM之前声明的ARG指令处于构建阶段之外,因此,FROM之后的任何指令都不能使用它。如果需要使用在第一个FROM之前用ARG指令声明的变量的值,可以在构建阶段内部使用不带变量值的ARG(ARG variable的形式)指令:
ARG VERSION=latest
FROM busybox:$VERSION
ARG VERSION
RUN echo $VERSION > image_version
ARG VERSION=7
ARG FIRSTNAME="Larry"
ARG LASTNAME="Wall"
FROM centos:$VERSION
ARG VERSION # 将ARG声明的变量引用到构建阶段内部
ARG FIRSTNAME # 同上
ARG LASTNAME # 同上
RUN echo $VERSION; echo $FIRSTNAME; echo $LASTNAME
CMD ["sh", "-c", "echo Process finished!"]
Last updated
Was this helpful?