Ciò può verificarsi se il contenitore dell'applicazione (web
qui) inizia prima che il database sia completamente inizializzato.
Devi aspettare fino a db
il servizio viene avviato (più precisamente, fino a quando mysql
sta accettando connessioni) prima di avviare l'applicazione (python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000
).
Per questo, puoi usare wait-for-it.sh
script (controlla https://docs.docker.com/compose/startup-order/ ) prima di eseguire i comandi Python. In alternativa, puoi utilizzare una politica di riavvio sul tuo web
servizio (https://docs.docker.com/compose/compose-file/ #restart_policy
) per riavviare automaticamente il servizio (fino a quando il database non è attivo).