Reputation: 1890
I have a docker-compose.yml
file with a following:
services:
kafka_listener:
build: .
command: bundle exec ./kafka foreground
restart: always
# other services
Then I start containers with: docker-compose up -d
On my amazon instance kafka-server (for example) fails to start sometimes, so ./kafka foregound
script fails. When typing docker ps
I see a message: Restarting (1) 11 minutes ago
. I thought docker should restart failed container instantly, but it seems it doesn't. After all, container has been restarted in about 30 minutes since first failed attempt.
Is there any way to tell Docker-Compose to restart container instantly after failure?
Upvotes: 13
Views: 26163
Reputation: 1500
You can use this policy :
on-failure
The on-failure
policy is a bit interesting as it allows you to tell Docker to restart a container if the exit code indicates error but not if the exit code indicates success. You can also specify a maximum number of times Docker will automatically restart the container. like on-failure:3
It will retry 3 times.
unless-stopped
The unless-stopped
restart policy behaves the same as always with one exception. When a container is stopped and the server is rebooted or the Docker service is restarted, the container will not be restarted.
Upvotes: 12