Warten auf die Initialisierung des MySQL-Containers
Docker-Container bieten eine isolierte Umgebung zum Ausführen von Anwendungen. Bei der Bereitstellung mehrerer Container müssen häufig deren Abhängigkeiten koordiniert werden. In diesem Fall ist es wichtig, zu warten, bis die Datenbank des MySQL-Containers bereit ist, bevor Sie mit anderen Aufgaben fortfahren.
Ein früherer Versuch bestand darin, ein Skript auszuführen, um darauf zu warten, dass MySQL bereit ist. Dieser Ansatz erwies sich jedoch als unzuverlässig mit dem Einstiegspunkt-Setup-Skript zu einer Race-Bedingung führen. Auf der Suche nach einer robusteren Lösung dachte der Benutzer über einen Bash-Sleep-Befehl nach, erkannte jedoch dessen Einschränkungen.
Ein eleganterer und effektiverer Ansatz ist die Verwendung des Dienstprogramms mysqladmin aus dem Paket mysql-client. Dieses Dienstprogramm kann den Zielserver anpingen, um festzustellen, ob er antwortet. Durch die Kombination von mysqladmin-Ping mit einer Schlafschleife kann ein einfacher Wartemechanismus implementiert werden:
while ! mysqladmin ping -h"$DB_HOST" --silent; do sleep 1 done
Diese Schleife pingt wiederholt den MySQL-Container, bis er antwortet, und stellt so sicher, dass die Datenbank bereit ist, bevor mit anderen Aufgaben fortgefahren wird.
Das obige ist der detaillierte Inhalt vonWie kann man zuverlässig sicherstellen, dass ein MySQL-Container bereit ist, bevor man fortfährt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!