Maison > Article > base de données > Comment s'assurer de manière fiable qu'un conteneur MySQL est prêt avant de continuer ?
En attente de l'initialisation du conteneur MySQL
Les conteneurs Docker fournissent un environnement isolé pour l'exécution d'applications. Lors du déploiement de plusieurs conteneurs, il faut souvent coordonner leurs dépendances. Dans ce cas, il est essentiel d'attendre que la base de données du conteneur MySQL soit prête avant de procéder à d'autres tâches.
Une tentative précédente impliquait l'exécution d'un script pour attendre que MySQL soit prêt, mais cette approche n'était pas fiable en raison à une condition de concurrence avec le script de configuration du point d'entrée. À la recherche d'une solution plus robuste, l'utilisateur a envisagé une commande bash sleep, mais a reconnu ses limites.
Une approche plus élégante et plus efficace consiste à utiliser l'utilitaire mysqladmin du package mysql-client. Cet utilitaire peut envoyer une requête ping au serveur cible pour déterminer s'il répond. En combinant le ping mysqladmin avec une boucle de veille, on peut implémenter un mécanisme d'attente simple :
while ! mysqladmin ping -h"$DB_HOST" --silent; do sleep 1 done
Cette boucle pingera à plusieurs reprises le conteneur MySQL jusqu'à ce qu'il réponde, garantissant que la base de données est prête avant de procéder à d'autres tâches.
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!