J'ai passé quelques heures à enquêter sur ce problème et j'ai trouvé une solution.Docker depends_on
considérez simplement le démarrage du service pour exécuter un autre service. Cela arrive car dès que db
est démarré, service-app essaie de se connecter à votre db
, mais il n'est pas prêt à recevoir des connexions. Ainsi, vous pouvez vérifier db
état de santé dans le service d'application pour attendre la connexion. Voici ma solution, elle a résolu mon problème. :)Important :j'utilise docker-compose version 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:
Dans ce cas, il n'est pas nécessaire de créer un fichier .sh. J'espère que cela vous aidera;)cya