Nous avons une application de service de flacon qui se connecte à une base de données MySQL pour les données. Cette application de flacon est serveur via GunCorn dans un conteneur Docker. Nous utilisons Docker-Compose pour la même chose. P>
Lorsque l'application commence, nous effectuons la connexion à la base de données. Si la connexion à la base de données échoue (3 tentatives), l'application ne parvient pas à initialiser et à quitter. Mais je remarque que le conteneur commence. Comment puis-je amener le conteneur à démarrer aussi bien lorsque mon application ne parvient pas à commencer? P>
3 Réponses :
Utiliser redémarrage: non code>
Il existe 3 options pour la stratégie de redémarrage.
- restart: no
- restart: always
- restart: on-failure
S'il commence vraiment (pas en redémarrage permanent), essayez d'ajouter ERP "EXIT 'ERR code> en haut du script de votre point d'entrée. P>
Vous devez d'abord indiquer puis la ligne de commande ressemblera à quelque chose comme: p> docker-composant code> que vous voulez que tous les conteneurs arrêtent l'exécution à la sortie de votre service principal. Ceci est fait en utilisant
- Abort-on-conteneur-exit code> argument de ligne de commande. Disons que si vous avez 2 services:
docker-compose up --exit-code-from flask --abort-on-container-exit
Si le processus principal dans un conteneur sort, le conteneur s'éteindra également. Pouvez-vous ajouter suffisamment de votre application d'application et de déploiement (
docker-compose.yml code>, des scripts d'entrée d'emballage impliqués) pour créer un Exemple reproductible minimal ?