Comment puis-je savoir quand mon menu fixe mysql conteneur est en place et mysql est prêt à prendre des requêtes?

Je suis le déploiement de quelques-uns des différents conteneurs docker, mysql être la première. Je veux exécuter des scripts dès que la base de données est en place et de procéder à la construction d'autres conteneurs. Le script a été défaillant parce qu'il était en train de s'exécuter lorsque le point d'entrée de script, qui permet de définir mysql (à partir de cette officiel de mysql conteneur), était toujours en cours d'exécution.

sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=MY_ROOT_PASS -p 3306:3306 -d mysql
[..] wait for mysql to be ready [..]
mysql -h 127.0.0.1 -P 3306 -u root --password=MY_ROOT_PASS < MY_SQL_SCRIPT.sql

Est-il un moyen d'attendre un signal de entrypoiny mysql script d'installation de finition à l'intérieur du conteneur docker? Bash le sommeil apparaît comme une solution sous-optimale.

EDIT: je suis Allé pour un script bash comme ça. Pas le plus élégant et un peu de force brute, mais fonctionne comme un charme. Peut-être que quelqu'un va trouver que utile.

OUTPUT="Can't connect"
while [[ $OUTPUT == *"Can't connect"* ]]
do
    OUTPUT=$(mysql -h $APP_IP -P :$APP_PORT -u yyy --password=xxx <       ./my_script.sql 2>&1)
done
  • ajouter une boucle en bash pour vérifier mysql service de l'état ? Je pense que c'est aussi bon qu'il peut obtenir.
  • Merci @fabrizioM. Je suis allé avec cette approche.
  • cette question a été répondu ici.
InformationsquelleAutor haren | 2014-08-26