nattfodd
nattfodd

Reputation: 1890

docker-compose restart interval

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

Answers (1)

chintan thakar
chintan thakar

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

Related Questions