Прекарах няколко часа в проучване на този проблем и получих решение. Docker depends_on
просто помислете за стартиране на услугата, за да стартирате друга услуга. Тогава това се случва, защото веднага щом db
се стартира, приложението за услуга се опитва да се свърже с вашия db
, но не е готов за получаване на връзки. Така че можете да проверите db
здравно състояние в услугата за приложения, за да изчакате връзка. Ето моето решение, то реши проблема ми. :)Важно:Използвам docker-compose версия 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:
В този случай не е необходимо да създавате .sh файл. Надявам се да ви помогне, момчета;)cya