Tengo un archivo docker-compose.yml con lo siguiente:
services: kafka_listener: build: . command: bundle exec ./kafka foreground restart: always # other services Luego empiezo contenedores con: docker-compose up -d
En mi instancia de Amazon, kafka-server (por ejemplo) a veces no se inicia, por lo que falla el script ./kafka foregound . Al escribir docker ps , veo un mensaje: Restarting (1) 11 minutes ago . Pensé que la ventana acoplable debería reiniciar el contenedor fallido al instante, pero parece que no es así. Después de todo, el contenedor se reinició en aproximadamente 30 minutos desde el primer intento fallido.
¿Hay alguna forma de decirle a Docker-Compose que reinicie el contenedor instantáneamente después de una falla?
Puede utilizar esta política:
on-failure La política on-failure es un poco interesante ya que le permite decirle a Docker que reinicie un contenedor si el código de salida indica un error, pero no si el código de salida indica un éxito. También puede especificar un número máximo de veces que Docker reiniciará automáticamente el contenedor. como on-failure:3 Se volverá a intentar 3 veces.
unless-stopped La política de reinicio unless-stopped se comporta igual que siempre con una excepción. Cuando se detiene un contenedor y se reinicia el servidor o se reinicia el servicio Docker, el contenedor no se reiniciará.
Espero que esto te ayude en este problema.
¡Gracias!