93 votes

Stratégie de redémarrage de Docker-Compose

J'ai regardé à travers les docs pour docker-composer et je vois que la Version 3 a déployer un redémarrage de la politique, mais c'est seulement pour l'essaim. J'ai essayé de réglage restart_policy sur mon service mais eu cette erreur:

ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.web: 'restart_policy'

Est-il possible de définir un redémarrage de la politique sur les services créés à l'aide de docker-composer à l'extérieur d'un essaim?

146voto

Alexandr Latushkin Points 1473

Il ressemble à une lacune dans la documentation

Dans la 3ème version, nous pouvons toujours utiliser "redémarrer" à l'intérieur des services de même qu'avant dans la v. 2 (sauf pour les déployer en essaim)

version: '3'
services:
  my-service:
    restart: on-failure:5 

https://docs.docker.com/compose/compose-file/#restart

115voto

Dan Lowe Points 21696

Version 2 prend en charge les stratégies de redémarrage, à l'aide de l' restart mot-clé, et devrait fonctionner pour vous si vous n'avez pas besoin de l'Essaim (qui vous dit que vous n'avez pas besoin/envie).

version: '2'
services:
  web:
    image: apache
    restart: always

https://docs.docker.com/compose/compose-file/compose-file-v2/#restart

Composer le format de la version 3 a un paramètre qui s'appelle restart_policy, mais pour autant que je peux dire à partir de la documentation, il est uniquement valable dans le cadre d' deploy, qui est utilisé uniquement lors du déploiement d'un Essaim. La version 3 n'est probablement pas utile dans votre cas.

7voto

Ben Points 36

Même si vous n'êtes PAS dans l'essaim de mode, il y a une option de compatibilité qui va travailler avec restart_policy, il va tenter de redémarrer, même si vous n'êtes pas à se déployer. Le seul problème, c'est au sous-clés de "report" et "fenêtre" sera ignoré. Voici un exemple:

version: '3.7'
services:
  build:
    context: .
    dockerfile: Dockerfile
  container_name: example
  deploy:
    restart_policy:
      condition: on-failure
      max-attempts: 3

exécutez cette commande:

docker-compose -f docker-compose.yml --compatability up

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X