I started using Docker recently and there was one thing I didn’t understand – initially.
So, when running your
Dockerfile if you don’t have a
CMD command the container will continue to run. However, when you include
CMD command the container will exit unless you run one of your programs in the foreground. So, you’ll have to do something like this:
CMD bash -c "apachectl -D FOREGROUND"
if you are running Apache, of course, that will be different if you are running different software.
Another thing is that the
CMD is where you want to run you dependencies installation, like PHP’s
composer intall and NOT in the
RUN commands. Here is how my
CMD looked like in the end:
CMD bash -c "composer install && chmod -R 777 /path/to/project/storage/ /path/to/project/bootstrap/ && php /path/to/project/artisan migrate --force && apachectl -D FOREGROUND"
Note that I am a complete noob when it comes to
Docker so take this with a grain of salt. This is only my noob understanding.