Passei algumas horas investigando esse problema e consegui uma solução.Docker
depends_on
apenas considere a inicialização do serviço para executar outro serviço. Do que acontece porque assim que db
é iniciado, o aplicativo de serviço tenta se conectar ao seu db
, mas não está pronto para receber conexões. Então você pode verificar db
status de integridade no serviço de aplicativo para aguardar a conexão. Aqui está minha solução, resolveu meu problema. :)Importante:estou usando o docker-compose versão 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:
Neste caso não é necessário criar um arquivo .sh. Espero que ajude vocês;) cya