如果只是想在原镜像中安装一些工具,不重新指定entrypoint的话,镜像还可以和以前一样用吗?
测试结果是可以的。
但实际的entrypoint配置会有变化。
以jenkins jnlp镜像为例,修改前,entrypoint相关的是这样的:
"ContainerConfig": {……"Cmd": ["/bin/sh","-c","#(nop) ","ENTRYPOINT [\"jenkins-slave\"]"],……}……"Entrypoint": ["jenkins-slave"],……"Config": {"Entrypoint": ["jenkins-slave"],……}
一个三个地方定义了entrypoint
新的dockerfile示例为:
# cat ./DockerfileFROM jenkins/jnlp:v1.1RUN rm /etc/yum.repos.d/* -rfCOPY ./xxx.repo /etc/yum.repos.d/RUN yum install -y iproute bind-utils net-tools telnet wget tcpdump nc;yum clean all;
新的image的entrypoint变为:
ContainerConfig的Entrypoint为null ,传说对新的容器没有影响
Entrypoint没了
Config的entrypoint没变 ,这个对新容器还是有用的。
所以镜像可以继续被jenkins使用,不需要特别重新指定entrypoint。
docker.io的doc做得有点渣了,search entrypoint都没有结果。
