您的位置:首页 > 运维架构 > Docker

dockerfile 之触发器 ONBUILD

2017-07-27 23:13 99 查看
ONBUILD

该命令实际上是个触发器:也就是说 该命令 广泛用在制作基础镜像

用创建之后的基础镜像 创建其他镜像时 才会触发ONBUILD 的命令

上例子:

➜  init-container git:(master) ✗ sudo docker images | grep ubuntu
Password:
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.14              6f086fe82845        10 days ago         482 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.13
4000
cc0eb0c97a80        10 days ago         482 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.12              0e8df484698c        10 days ago         482 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.11              d23b6de3058f        10 days ago         482 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.10              04855cfeb6a8        10 days ago         482 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.9               91e48b3eec87        10 days ago         482 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.8               c1c2d7745ec7        10 days ago         482 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.7               8a3bc6289887        10 days ago         482 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.6               2a32db8ca175        10 days ago         482 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.5               1d01da36e94d        10 days ago         482 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.4               0ed1d0d2dc44        10 days ago         482 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.3               c64c0639bba0        10 days ago         482 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.2               ed535284a0e0        10 days ago         482 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.1               bb14e8718f67        10 days ago         482 MB
harbor.enncloud.cn/qinzhao-harbor/ubuntu-openresty   v1.0.0               7da57fcb791f        10 days ago         482 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-openresty      v1.0.0               7da57fcb791f        10 days ago         482 MB
harbor.enncloud.cn/qinzhao-harbor/ubuntu             v1.0.1               358efbe8590e        11 days ago         473 MB
harbor.enncloud.cn/qinzhao-harbor/ubuntu-python      v1.0.1               97252f94a1a5        11 days ago         192 MB
reg.enncloud.cn/qinzhao-harbor/ubuntu-python         v1.0.1               97252f94a1a5        11 days ago         192 MB
harbor.enncloud.cn/qinzhao-harbor/ubuntu-python      v1.0.0               4f5da7e6c3b8        11 days ago         190 MB
ubuntu                                               latest               d355ed3537e9        5 weeks ago         119 MB
enreg.enncloud.cn/qinzhao-harbor/ubuntu              v1.0.0               ebcd9d4fca80        2 months ago        118 MB
harbor.enncloud.cn/qinzhao-harbor/ubuntu             v1.0.0               ebcd9d4fca80        2 months ago        118 MB


dockerfile创建test 文件夹

➜  ONBUILD cat dockerfile
FROM ubuntu:latest

ONBUILD RUN mkdir test

CMD echo hello docker


➜  ONBUILD sudo docker build -t  harbor.enncloud.cn/qinzhao-harbor/ubuntu-onbuild:v1.0.0 -f dockerfile .
Sending build context to Docker daemon 2.048 kB
Step 1/3 : FROM ubuntu:latest
---> d355ed3537e9
Step 2/3 : ONBUILD run mkdir test
---> Running in a7166d0a38b1
---> 9a9cc25858ac
Removing intermediate container a7166d0a38b1
Step 3/3 : CMD echo hello docker
---> Running in b72f15fae13b
---> 3eaa15229969
Removing intermediate container b72f15fae13b
Successfully built 3eaa15229969


没有test文件夹

➜  ONBUILD sudo docker run -it harbor.enncloud.cn/qinzhao-harbor/ubuntu-onbuild:v1.0.0 sh
# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var


dockerfile

➜  ONBUILD cat dockerfile_mkdir_test
FROM harbor.enncloud.cn/qinzhao-harbor/ubuntu-onbuild:v1.0.0

CMD ["echo","docker_onbuild"]


ONBUILD sudo docker build -t harbor.enncloud.cn/qinzhao-harbor/ubuntu-onbuild:v1.0.1 -f dockerfile_mkdir_test .
Password:
Sending build context to Docker daemon 3.072 kB
Step 1/2 : FROM harbor.enncloud.cn/qinzhao-harbor/ubuntu-onbuild:v1.0.0
# Executing 1 build trigger...
Step 1/1 : RUN mkdir test
---> Running in 6b6e1ec22051
---> bd3877f2b6b0
Removing intermediate container 6b6e1ec22051
Step 2/2 : CMD echo docker_onbuild
---> Running in 390bfbb537ea
---> af4ffb828e30
Removing intermediate container 390bfbb537ea
Successfully built af4ffb828e30


test dir exist

➜  ONBUILD sudo docker run -it harbor.enncloud.cn/qinzhao-harbor/ubuntu-onbuild:v1.0.1 sh
# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  test  tmp  usr  var
#


end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker