depends_on reicht nicht

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.