ONBUILD:当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发。
ONBUILD构建案例:
父Dockerfile:(father)
FROM centos
RUN yum install -y curl
ENTRYPOINT [ "curl", "-s", "http://ip.cn" ]
ONBUILD RUN echo "father is onbuild...................."
构建父镜像:
执行命令:
docker build -f ~/myDocker/father -t centos:father .
输出结果:
hadoop@Docker:~/myDocker$ docker build -f ~/myDocker/father -t centos:father .
Sending build context to Docker daemon 6.144kB
Step 1/4 : FROM centos
---> 75835a67d134
Step 2/4 : RUN yum install -y curl
---> Using cache
---> 99f208d9a380
Step 3/4 : ENTRYPOINT [ "curl", "-s", "http://ip.cn" ]
---> Using cache
---> 906847735fbe
Step 4/4 : ONBUILD RUN echo "father is onbuild...................."
---> Using cache
---> e0308e765f68
Successfully built e0308e765f68
Successfully tagged centos:father
子Dockerfile:(son)
# 父镜像
FROM centos:father
RUN yum install -y curl
ENTRYPOINT [ "curl", "-s", "http://ip.cn" ]
执行命令:
docker build -f ~/myDocker/son -t centos:son .
构建:
我们可以看到父镜像的ONBUILD被执行了。