Dockerfile详细解析(五)——FROM

FROM

FROM <image> [AS <name>]

或者

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

或者

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

FROM 指令初始化一个新的构建阶段以及设置基础镜像到随后的指令。因此,一个合法的 Dockerfile必须以一个FROM指令开头。镜像可以是任何合法的镜像——从公共仓库里面拉取一个镜像尤其容易。

  • ARG 是唯一一个可以在FROM之前运行的Dockerfile指令。
  • FROM 可以出现多次在单个Dockerfile中去创建多个镜像或者使用一个构建的过程作为另外一个构建过程的依赖。只需在每个新的FROM命令提交前记录上一次输出的镜像ID。每次的FROM都会清除先前指令的任何状态。
  • 在使用FROM指令是可以选择性地用AS name给新构建命名。这个名字可以附加在FROMCOPY --from=<name|index>的指令后面来引用这个阶段的镜像。
  • tagdigest 的值是可选的。如果你省略他们,构建器会默认假设一个 latest tag。构建器会返回一个错误如果它找不到tag的值。

理解 ARG 和 FROM 如何互相影响

FROM 指令支持在第一个 FROM 前通过一些 AGE 指令声明变量。

ARG  CODE_VERSION=latest
FROM base:${CODE_VERSION}
CMD  /code/run-app

FROM extras:${CODE_VERSION}
CMD  /code/run-extras

ARGFROM 之前声明是在构建阶段之外,所以在FROM后,它不能被任何指令使用。为了可以使用使用在第一个FROM之前定义的ARG,可以在构建阶段里卖弄声明一个没有值的ARG

ARG VERSION=latest
FROM busybox:$VERSION
ARG VERSION
RUN echo $VERSION > image_version
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值