Custom nginx container exits immediately when part of docker-compose
Just ran into this same issue, and the initial fix was to change the name of the service in docker-compose.yml
.
This worked, but the reason it worked is because Docker-compose caches the build & ties it to the service name. Every docker-compose up
after the first one just uses what it built before, so any changes you make to the Dockerfile
, or that section of the docker-compose.yml
are basically ignored.
When you (and I) changed the service name, it triggered a new build since that service name hasn't been tagged before.
The real solution is to do a: docker-compose build to rebuild the image (followed by a docker-compose up
). Their documentation doesn't really emphasize this issue.
The CMD in your Dockerfile
should start a process which needs to run in foreground. The command service nginx start
runs the process in deamon mode and thus your container exits cleanly because the service
command exits.
Use the following CMD ["nginx", "-g", "daemon off;"]
to start nginx (taken from official image) and it should work correctly.