PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Docker espera que o postgresql esteja em execução


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