Isso pode acontecer se o contêiner do seu aplicativo (
web
aqui) começa antes que seu banco de dados seja totalmente inicializado. Você deve esperar até
db
serviço é iniciado (mais precisamente, até mysql
está aceitando conexões) antes de iniciar seu aplicativo (python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000
). Para isso, você pode usar
wait-for-it.sh
script (verifique https://docs.docker.com/compose/startup-order/ ) antes de executar seus comandos python. Como alternativa, você pode usar uma política de reinicialização em sua web
service (https://docs.docker.com/compose/compose-file/ #restart_policy
) para reiniciar automaticamente seu serviço (até que o banco de dados esteja ativo).