Dies kann passieren, wenn Ihr Anwendungscontainer (web
hier) beginnt, bevor Ihre Datenbank vollständig initialisiert ist.
Sie müssen warten, bis db
Dienst gestartet wird (genauer gesagt bis mysql
akzeptiert Verbindungen), bevor Sie Ihre Anwendung starten (python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000
).
Dafür können Sie wait-for-it.sh
verwenden Skript (siehe https://docs.docker.com/compose/startup-order/ ), bevor Sie Ihre Python-Befehle ausführen. Alternativ könnten Sie eine Neustartrichtlinie in Ihrem web
verwenden Dienst (https://docs.docker.com/compose/compose-file/ #restart_policy
), um Ihren Dienst automatisch neu zu starten (bis die Datenbank hochgefahren ist).