指明当前的镜像基于哪个镜像构建
FROM
- 指明当前的镜像基于哪个镜像构建
- dockerfile 必须以 FROM 开头,除了 ARG 命令可以在 FROM 前面
1 | FROM [--platform=<platform>] <image> [AS <name>] |
小栗子
1 | FROM alpine:latest |
一个 dockerfile 可以有多个 FROM
- 可以有多个 FROM 来创建多个镜像,或区分构建阶段,将一个构建阶段作为另一个构建阶段的依赖项
- AS
就是命名当前构建阶段 - 在后续构建阶段,可以给 FROM、COPY 指令用上,通过 --from=
引用前面构建的镜像
1 | # 第一构建阶段:将仅用于生成 requirements.txt 文件 |
了解 ARG 和 FROM 如何交互
FROM 指令支持由出现在第一个 FROM 之前的任何 ARG 指令声明的变量
1 | ARG CODE_VERSION=latest |
注意
- 在 FROM 之前声明的 ARG 在构建阶段之外,因此不能在 FROM 之后的任何指令中使用
- 要使用在第一个 FROM 之前声明的 ARG 的默认值,要在构建阶段内声明一次没有值的 ARG 指令
1 | ARG VERSION=latest |