Tôi đã dành vài giờ để điều tra vấn đề này và tôi đã có giải pháp. chỉ cần xem xét khởi động dịch vụ để chạy một dịch vụ khác. Hơn nó xảy ra bởi vì ngay sau khi db
được khởi động, ứng dụng dịch vụ cố gắng kết nối với db
ur , nhưng nó chưa sẵn sàng để nhận kết nối. Vì vậy, bạn có thể kiểm tra db
tình trạng sức khỏe trong dịch vụ ứng dụng để chờ kết nối. Đây là giải pháp của tôi, nó đã giải quyết được vấn đề của tôi. :) Quan trọng:Tôi đang sử dụng docker-compile phiên bản 2.1.
version: '2.1'
services:
my-app:
build: .
command: su -c "python manage.py runserver 0.0.0.0:8000"
ports:
- "8000:8000"
depends_on:
db:
condition: service_healthy
links:
- db
volumes:
- .:/app_directory
db:
image: postgres:10.5
ports:
- "5432:5432"
volumes:
- database:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
volumes:
database:
Trong trường hợp này, không cần thiết phải tạo tệp .sh, tôi hy vọng nó sẽ giúp ích cho các bạn;) cya