Bei der Arbeit mit mehreren Docker-Containern kann die Koordinierung der Containervorgänge und die Sicherstellung der Bereitschaft von entscheidender Bedeutung sein. Nehmen Sie das Beispiel der Bereitstellung eines MySQL-Containers und der Ausführung von Skripts, sobald die Datenbank bereit ist. Das in der Frage erwähnte Auftreten von Problemen aufgrund vorzeitiger Ausführung verdeutlicht jedoch die Notwendigkeit eines zuverlässigen Mechanismus zur Erkennung der Verfügbarkeit von MySQL.
Das bereitgestellte Bash-Skript bietet eine praktische Lösung, die auf einer Schleife basiert, die dies wiederholt versucht Stellen Sie eine Verbindung zu MySQL her, bis eine erfolgreiche Verbindung hergestellt wurde. Dieser Ansatz ist zwar effektiv, aber möglicherweise nicht für alle Szenarien optimal.
Erwägen Sie stattdessen die Nutzung des Dienstprogramms mysqladmin, das mit dem verfügbar ist mysql-client-Paket. mysqladmin bietet eine Befehlszeilenschnittstelle zum Verwalten von MySQL-Instanzen. Eine seiner nützlichen Funktionen ist der Ping-Befehl, der versucht, eine Verbindung zu einem Zielserver herzustellen.
Um mysqladmin in den Warteprozess zu integrieren, verwenden Sie einfach eine Schleife, die wiederholt den mysqladmin-Ping mit den entsprechenden Host- und Authentifizierungsparametern ausführt. Sobald der Befehl keinen Fehler mehr zurückgibt, was auf eine erfolgreiche MySQL-Verbindung hinweist, fahren Sie mit weiteren Vorgängen fort:
while ! mysqladmin ping -h"$DB_HOST" --silent; do sleep 1 done
Dieser Ansatz bietet eine einfachere und gezieltere Möglichkeit, auf die MySQL-Bereitschaft zu warten, den Ressourcenverbrauch zu minimieren und einen zuverlässigen Container sicherzustellen Koordination.
Das obige ist der detaillierte Inhalt vonWie kann man in einem Docker-Container elegant auf die MySQL-Bereitschaft warten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!