Ik heb enkele uren besteed aan het onderzoeken van dit probleem en ik heb een oplossing gevonden. Docker depends_on
overweeg gewoon het opstarten van een service om een andere service uit te voeren. Dan gebeurt het want zodra db
is gestart, service-app probeert verbinding te maken met uw db
, maar het is niet klaar om verbindingen te ontvangen. U kunt dus db
. controleren gezondheidsstatus in app-service om te wachten op verbinding. Hier is mijn oplossing, het loste mijn probleem op. :)Belangrijk:ik gebruik docker-compose versie 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:
In dit geval is het niet nodig om een .sh-bestand aan te maken. Ik hoop dat het jullie helpt;)cya