Това може да се случи, ако контейнерът на приложението ви (web
тук) започва преди вашата база данни да бъде напълно инициализирана.
Трябва да изчакате до db
услугата се стартира (по-точно до mysql
приема връзки), преди да стартирате приложението си (python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000
).
За това можете да използвате wait-for-it.sh
скрипт (проверете https://docs.docker.com/compose/startup-order/ ), преди да стартирате вашите команди на python. Като алтернатива можете да използвате правило за рестартиране във вашия web
услуга (https://docs.docker.com/compose/compose-file/ #restart_policy
), за да рестартирате автоматично вашата услуга (докато базата данни не бъде изградена).