Może się to zdarzyć, jeśli kontener aplikacji (web
tutaj) zaczyna się przed pełną inicjalizacją bazy danych.
Musisz poczekać, aż db
usługa jest uruchomiona (dokładniej do mysql
akceptuje połączenia) przed uruchomieniem aplikacji (python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000
).
W tym celu możesz użyć wait-for-it.sh
skrypt (sprawdź https://docs.docker.com/compose/startup-order/ ) przed uruchomieniem poleceń Pythona. Alternatywnie możesz użyć zasad ponownego uruchamiania w swojej web
usługa (https://docs.docker.com/compose/compose-file/ #restart_policy
), aby automatycznie zrestartować usługę (do czasu uruchomienia bazy danych).