depends_on reicht nicht
- Matt
Ein Klassiker: Die Anwendung startet vor der Datenbank und stirbt beim ersten Verbindungsversuch. depends_on hilft nicht, weil es nur auf das Starten des Containers wartet, nicht auf die Bereitschaft des Dienstes.
services:
db:
image: postgres:18
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
retries: 10
api:
build: .
depends_on:
db:
condition: service_healthy
Die längere Schreibweise mit condition: service_healthy ist der Teil, der wirkt. Ohne den Healthcheck darüber tut sie allerdings nichts.
Auch mit Healthcheck sollte die Anwendung einen Verbindungsversuch wiederholen können. Container starten auch mal neu.