Docker-compose : Déterminer l'état de préparation de la connexion MySQL
Dans Docker Compose, garantir la disponibilité d'une connexion à une base de données avant de démarrer un conteneur d'application peut être une étape cruciale dans l’orchestration. Pour y parvenir, les options healthcheck et depend_on offrent une solution pratique.
Cependant, configurer un bilan de santé efficace pour MySQL peut poser des défis. Explorons les approches mentionnées dans la requête et évaluons leurs limites :
La solution réside dans une commande de contrôle de santé différente :
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
Cette commande teste directement la disponibilité du serveur MySQL sur le localhost et sert d'indicateur fiable de sa préparation aux connexions. En utilisant cette vérification de l'état, vous pouvez vous assurer que votre conteneur d'application ne démarre qu'une fois MySQL entièrement initialisé et accessible via les connexions réseau.
Dans votre fichier Docker Compose, vous pouvez intégrer cette vérification de l'état comme suit :
services: api: ... depends_on: db: condition: service_healthy db: ... healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] timeout: 20s retries: 10
Avec cette configuration, le conteneur API attendra que la vérification de l'état du conteneur de base de données réussisse avant de démarrer, garantissant que MySQL est prêt à accepter les connexions et minimisant le risque de migrations ou d'applications avant le démarrage. échecs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!