How to stop docker container from starting if app initialization has failed?

How to stop docker container from starting if app initialization has failed?

docker restart container on reboot
docker container dies immediately
docker stop container
docker logs
docker start <container
docker remove container
docker stop all containers
docker restart all containers

We have a flask service application which connects to a mysql database for data. This flask app is server via gunicorn in a docker container. We are using docker-compose for the same.

When the application starts we make the connection to the database. If the connection to the database fails (3 attempts) the application fails to initialize and exits. But am noticing that the container starts. How can i cause the container to fail to start as well when my app fails to start?

use restart:no there are 3 options for restart policy.

- restart: no
- restart: always
- restart: on-failure

Gracefully Stopping Docker Containers, , but the use of the -f flag will cause it to first issue a SIGKILL. docker logs <copy the instance id from docker events messages on screen> You should now see some output from the failed image startup. As @alexkb suggested in a comment: docker events& can be troublesome if your container is being constantly

If it really starts (not in permanent restarting), try add trap 'exit' ERR in top of your entrypoint's script.

How to Start Docker Containers Automatically, If it is manually stopped, it is restarted only when Docker daemon restarts or the container itself is manually restarted. (See the second bullet listed in restart  You would have to share the script you use to run your container with? and what the AdditionalSetup.ps1 contains? The AdditionalSetup.ps1 in the my folder is something the container gets from the outside and apparently that is where it fails.

First you have to tell docker-compose that you want all containers to stop execution upon exit of your main service. This is done using --abort-on-container-exit command line argument. Lets say if you have 2 services:


version: '3'

then command line will look something like:

docker-compose up --exit-code-from flask --abort-on-container-exit

Thus telling your flask service is main and you don't want to continue when it exits.

Second, you configure your flask main process (PID 1) to exit (preferably with non-zero exit code) if it fails to connect to database. Thats' it.

Docker: Container keeps on restarting again on again, docker container start, Start one or more stopped containers. docker container stats, Display a live stream of container(s) resource usage statistics. The syntax of the command to stop a docker container is : docker stop [-t|--time[=10]] CONTAINER [CONTAINER] Here, –time/-t is grace period to wait before stopping the container.

How do I make a Docker container start automatically on system boot?, You should now see some output from the failed image startup. As @alexkb suggested in a comment: docker events& can be troublesome if your container is being In this scenario it may be easier to get the container hex id out of the logs in #stop the current demon and start it in debug modus sudo service docker stop  Note: server command must be after &, otherwise Docker container will stop when script finishes job. In example referenced by Microsoft this order is reversed, but container works because of node.js server running.

Start containers automatically, Your Docker container is exiting without a useful error message? How close are you to stripping the Dockerfile back to Alpine and starting over? You can either try to run your container without the -d flag, or check the exit code of a stopped Your image is probably configured to directly run your app of choice inside of  This happened with me where I was working with Docker on Windows & then pushing the image to Azure Container Registry which in turn was being used by Azure Web App for Containers. This post also serves as reminder to me :0) for future. After performing some updates to the DockerFile (I did a git clone from a Github repository) and pushing the new docker image to ACR, I started seeing the

restart, If you need to wait for your containers to be “stopped gracefully”, chances are that Rather, it's because of your dockerized apps don't react to a SIGTERM signal docker-compose up is running, docker-compose tries to stop your containers has many edge cases, and using a valid init in your containers is a great idea. If you manually stop a container, its restart policy is ignored until the Docker daemon restarts or the container is manually restarted. This is another attempt to prevent a restart loop. Restart policies only apply to containers. Restart policies for swarm services are configured differently.