Dockerfile文件FROM指令初始化新的構(gòu)建階段并為后續(xù)指令設(shè)置“基本鏡像”。因此,有效的 Dockerfile 必須以 FROM 指令開(kāi)頭。鏡像可以是任何有效鏡像。
語(yǔ)法格式
FROM [--platform=platform] image [AS name]
FROM [--platform=platform] image[:tag] [AS name]
FROM [--platform=platform] image[@digest] [AS name]
FROM指令詳細(xì)說(shuō)明
ARG 是唯一一個(gè)可能出現(xiàn)在 FROM 前邊的指令;
FROM 可以在單個(gè) Dockerfile 鏡像中多次出現(xiàn)以創(chuàng)建多個(gè)鏡像,或者使用一個(gè)構(gòu)建階段作為另一個(gè)構(gòu)建階段的依賴(lài)項(xiàng)。只需在每條新 FROM 指令之前記下提交輸出的最后一個(gè)鏡像ID。每條 FROM 指令都清除先前的指令創(chuàng)建的任何狀態(tài);
可選的名稱(chēng)可以通過(guò)添加給與一個(gè)新的構(gòu)建階段 AS name 的 FROM 指令。該名稱(chēng)可用于后續(xù) FROM 和 COPY --from=<name|index> 指示,以引用此階段構(gòu)建的鏡像;
該tag或digest值是可選的。如果您忽略其中任何一個(gè)latest,那么缺省情況下構(gòu)建器將采用標(biāo)簽。如果構(gòu)建器找不到該tag值,則返回錯(cuò)誤。
FROM指令支持由ARG 第一指令之前的任何指令聲明的變量FROM。
ARG CODE_VERSION=latest
FROM base:${CODE_VERSION}
CMD /code/run-app
FROM extras:${CODE_VERSION}
CMD /code/run-extras
ARG在a之前的聲明FROM位于構(gòu)建階段之外,因此不能在a之后的任何指令中使用它FROM。要ARG在第一次FROM使用聲明之前使用默認(rèn)值,請(qǐng)?jiān)贏(yíng)RG構(gòu)建階段使用沒(méi)有值的指令:
ARG VERSION=latest
FROM busybox:$VERSION
ARG VERSION
RUN echo $VERSION > image_version








