How does ENTRYPOINT Docker directive react when extending images
I want to know does react the
ENTRYPOINT instruction from Dockerfiles when heritage happens :
Let’s say for example I have an image called : jenkins
FROM java:8-jdk RUN ... ENTRYPOINT ["/bin/tini", "--", "/usr/local/bin/jenkins.sh"]
By running this image, the
ENTRYPOINT directive will start and install the application as expected
Let’s say now that I want to extend this image with a new Dockerfile, I call it : 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
Should I consider that :
- the jenkins entrypoint is triggered after my new lines.
- entrypoint will be trigered before my new lines.
- entrypoint will not be triggered.
In my example, I am trying to activate STARTTLS in default Jenkins docker image, should I just restart the process in the second image ?
Thanks to all 😉
One Solution collect form web for “How does ENTRYPOINT Docker directive react when extending images”
The commands in
ENTRYPOINT run when you execute
docker run. However, commands in
RUN are executed when you run
In your case, what’s going to happen is that when you
docker build the image, a new Jenkins configuration file is generated, and then when you
docker run it,
tini is launched, and in turns execute the
If what you’re trying to do is change the Jenkins configuration and nothing else, what you have here is good.