Điều này có thể xảy ra nếu vùng chứa ứng dụng của bạn (web
tại đây) bắt đầu trước khi cơ sở dữ liệu của bạn được khởi tạo hoàn toàn.
Bạn phải đợi cho đến khi db
dịch vụ được bắt đầu (chính xác hơn là cho đến khi mysql
đang chấp nhận kết nối) trước khi khởi động ứng dụng của bạn (python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000
).
Để làm được điều đó, bạn có thể sử dụng wait-for-it.sh
script (kiểm tra https://docs.docker.com/compose/startup-order/ ) trước khi chạy các lệnh python của bạn. Ngoài ra, bạn có thể sử dụng chính sách khởi động lại trên web
của mình dịch vụ ( https://docs.docker.com/compose/compose-file/ #restart_policy
) để tự động khởi động lại dịch vụ của bạn (cho đến khi cơ sở dữ liệu được khởi động).