zdq0394.github.com

Tech study and research.

Follow me on GitHub

FROM

FROM命令

FROM命令可以有如下形式:

FROM <image> [AS <name>]

FROM <image>[:<tag>] [AS <name>]

FROM <image>[:<digest>] [AS <name>]

FROM会开启一个新的build stage

一个有效的Dockerfile必须从一个FROM指令开始。

  • 只有ARG指令可以放在FROM指令之前。
  • FROM可以在Dockerfile中出现多次,每次都开启一个新的build stage。

ARG和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指令不属于任何build stage,所以它不能在FROM后面的指令中使用。 如果要使用的话,必须在build stage中用ARG指令指定一个未赋值的变量。

比如:

ARG VERSION=latest
FROM busybox:$VERSION
ARG VERSION
RUN echo $VERSION > image_version