Docker_Dockerfile中ONBUILD指令详解

ONBUILD

格式:ONBUILD <其它指令>

ONBUILD 它后面跟的是其它指令,比如 RUN, ADD 等,这些指令在当前镜像构建时并不会被执行,只有以当前镜像为基础镜像,去构建下一级镜像的时候才会被执行。

验证

首先写一个Dockerfile文件,里面写上ONBUILD指令

FROM centos:7
CMD /bin/bash
ONBUILD RUN echo "---------- parent image's ONBUILD ----------"

构建新镜像

[root@localhost myDocker]# docker build -f /myDocker/Dockerfile -t parent_centos .
Sending build context to Docker daemon  3.072kB
Step 1/3 : FROM centos:7
 ---> 5e35e350aded
Step 2/3 : CMD /bin/bash
 ---> Running in 62dea781892d
Removing intermediate container 62dea781892d
 ---> f3b04a1247d8
Step 3/3 : ONBUILD RUN echo "---------- parent image's ONBUILD ----------"
 ---> Running in 12e21a43da07
Removing intermediate container 12e21a43da07
 ---> 6da42c445faa
Successfully built 6da42c445faa
Successfully tagged parent_centos:latest

现在另外写一个Dockerfile文件,如下

FROM parent_centos  #继承于刚才构建的parent镜像
CMD /bin/bash

构建新的镜像

[root@localhost myDocker]# docker build -f /myDocker/Dockerfile2 -t child_centos .
Sending build context to Docker daemon  3.072kB
Step 1/2 : FROM parent_centos
# Executing 1 build trigger
 ---> Running in a29c1972c042
---------- parent image's ONBUILD ----------
Removing intermediate container a29c1972c042
 ---> 7ccc8643ec52
Step 2/2 : CMD /bin/bash
 ---> Running in f523bb0b649c
Removing intermediate container f523bb0b649c
 ---> 7f884226ebb3
Successfully built 7f884226ebb3
Successfully tagged child_centos:latest

刚才的构建信息出现了如下几行信息,说明在刚才构建child_centos的时候,已经触发了最开始所写的ONBUILD

# Executing 1 build trigger
 ---> Running in a29c1972c042
---------- parent image's ONBUILD ----------
Removing intermediate container a29c1972c042
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值