我想知道在遗产发生时会对来自Dockerfiles的ENTRYPOINT
指令做出反应:
我们举个例子,我说图片叫:jenkins
FROM java:8-jdk
RUN ...
ENTRYPOINT ["/bin/tini", "--", "/usr/local/bin/jenkins.sh"]
通过运行此映像,ENTRYPOINT
指令将按预期启动并安装应用程序
现在让我们说要用新的Dockerfile 扩展此图片,我称之为: jenkins-custom
FROM jenkins
# enable start tls
RUN echo "JENKINS_JAVA_OPTIONS=\"-Dmail.smtp.starttls.enable=true\"" >> /etc/default/jenkins
RUN chown jenkins:docker /etc/default/jenkins
我应该考虑一下:
在我的示例中,我尝试在默认的Jenkins docker镜像中激活STARTTLS,我是否应该在第二张图像中重新启动该过程?
感谢所有人;)
答案 0 :(得分:5)
执行ENTRYPOINT
时,docker run
中的命令会运行。但是,运行RUN
时会执行docker build
中的命令。
在您的情况下,将要发生的是,当您docker build
图像时,会生成一个新的Jenkins配置文件,然后当您docker run
时,{{1} }启动,然后执行tini
。
如果您尝试做的是更改Jenkins配置而没有其他任何内容,那么您在这里所做的就是好的。