如果只是想在原镜像中安装一些工具,不重新指定entrypoint的话,镜像还可以和以前一样用吗?
测试结果是可以的。
但实际的entrypoint配置会有变化。
以jenkins jnlp镜像为例,修改前,entrypoint相关的是这样的:
"ContainerConfig": {
……
"Cmd": [
"/bin/sh",
"-c",
"#(nop) ",
"ENTRYPOINT [\"jenkins-slave\"]"
],
……
}
……
"Entrypoint": [
"jenkins-slave"
],
……
"Config": {
"Entrypoint": [
"jenkins-slave"
],
……
}
一个三个地方定义了entrypoint
新的dockerfile示例为:
# cat ./Dockerfile
FROM jenkins/jnlp:v1.1
RUN rm /etc/yum.repos.d/* -rf
COPY ./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都没有结果。