Cela peut arriver si votre conteneur d'application (web
ici) commence avant que votre base de données ne soit complètement initialisée.
Vous devez attendre db
service est démarré (plus précisément, jusqu'à ce que mysql
accepte les connexions) avant de démarrer votre application (python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000
).
Pour cela, vous pouvez utiliser wait-for-it.sh
script (vérifiez https://docs.docker.com/compose/startup-order/ ) avant d'exécuter vos commandes python. Vous pouvez également utiliser une politique de redémarrage sur votre web
service (https://docs.docker.com/compose/compose-file/ #restart_policy
) pour redémarrer automatiquement votre service (jusqu'à ce que la base de données soit active).