Reputation: 6824
Ok just learning about creating a Dockerfile and my understanding (which is probably wrong) is that the CMD
command should be able to run a shell script from within the container once it is placed there.
I am just trying it out with a vanilla apache2 install
Dockerfile
FROM ubuntu:latest
ADD install-apache.sh /Scripts/install-apache.sh
RUN chmod +x /Scripts/install-apache.sh
CMD [/Scripts/install-apache.sh]
RUN echo "Hope this worked!"
I have also tried this:
CMD ["/Scripts/install-apache.sh"]
When I use the RUN
command it works (without the [ and ])
So I am a bit lost what the CMD
is suppose to do.
I followed the instructions from http://kimh.github.io and read through the docker docs as well.
Question:
How am I using the CMD
wrong and how should I use it in this scenario?
Upvotes: 2
Views: 4293
Reputation: 17443
RUN
is executed while you are building an image. This is usually used to install things or perform modifications in the resulting image.CMD
is executed when the container is started. Use this to e.g. start applications.Also check the docs
The main purpose of a CMD is to provide defaults for an executing container. These defaults can include an executable, or they can omit the executable, in which case you must specify an ENTRYPOINT instruction as well.
Upvotes: 5