Ich betreibe 2 Container gleichzeitig (verbunden über Docker-Compose beim Setzen von Links && dependent_on). Die Abhängigkeit von reicht nicht aus, also möchte ich, dass das Skript, das auf dem Entryphone eines der Container ausgeführt wird, überprüft, ob der andere Container bereits auf einem Port ausgeführt wird.
Ich habe es versucht:
#!bin/bash
until nc -z w10 <container_name> 3306
do
echo waiting for db to be ready...
sleep 2
done
echo code is ready
Aber das funktioniert nicht..
Hat jemand eine Idee?
Lösung des Problems
Ich würde vorschlagen, den depends_on
Ansatz zu verwenden. Sie können jedoch einige der erweiterten Einstellungen dieses Befehls verwenden. Bitte lesen Sie die Dokumentation der Start- und Herunterfahrreihenfolge von Control in Compose
Sie können das Wait-for-it.sh- Skript verwenden, um genau das zu erreichen, was Sie brauchen. Auszug aus der Dokumentation:
version: "2"
services:
web:
build:.
ports:
- "80:8000"
depends_on:
- "db"
command: ["./wait-for-it.sh", "db:5432", "--", "python", "app.py"]
db:
image: postgres
Keine Kommentare:
Kommentar veröffentlichen