Beiträge in diesem Abschnitt

Die Plattform mit Docker Compose in Produktion betreiben

Veröffentlicht:
Aktualisiert:

Für Produktionsbereitstellungen mit Compose stellt MobilityManager eine Override-Datei bereit, docker-compose.prod.yml, die auf die Basis-Compose-Datei aufsetzt. Sie betreibt ein vorgefertigtes Image aus einer Registry, anstatt lokal zu bauen, und erzwingt strengere Einstellungen.

Wie sich das Override unterscheidet

Im Vergleich zum Entwicklungs-Stack sorgt das Produktions-Override dafür, dass:

  • ein vorgefertigtes Image aus einer Registry gezogen wird, anstatt aus dem Quellcode zu bauen.
  • POSTGRES_PASSWORD und JWT_KEY erforderlich sind — der Start bricht sofort ab, wenn eines davon fehlt.
  • restart: always für beide Dienste gesetzt wird und Arbeitsspeichergrenzen sowie -reservierungen angewendet werden.
  • ein optionaler License__PublicKey zur Lizenzvalidierung akzeptiert wird.

Die Umgebungsdatei vorbereiten

Erstellen Sie eine .env-Datei mit starken, eindeutigen Geheimnissen und den Image-Koordinaten:

POSTGRES_PASSWORD=YourStrongPassword123!
JWT_KEY=YourSecretKeyThatMustBeAtLeast32CharactersLong!
JWT_ISSUER=CK.MobilityManager
JWT_AUDIENCE=CK.MobilityManager.Users
DOCKER_REGISTRY=ghcr.io
DOCKER_IMAGE=your-org/ck-mobility-manager
VERSION=v1.25.0

Tipp: Binden Sie VERSION in der Produktion an einen bestimmten Tag statt an latest, damit erneute Bereitstellungen reproduzierbar sind und Upgrades bewusst erfolgen.

Bereitstellen

  1. Kombinieren Sie die Basis- und die Produktionsdatei und starten Sie im Hintergrund:
    docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
  2. Überprüfen Sie, ob die Anwendung fehlerfrei läuft:
    curl http://localhost:8080/healthz
  3. Greifen Sie unter http://localhost:8080 auf die Anwendung zu und schließen Sie das Onboarding ab, falls es sich um eine frische Datenbank handelt.

Warnung: Terminieren Sie TLS vor dem Container (Reverse-Proxy oder Load-Balancer). Der Container liefert reines HTTP über Port 8080 aus und sollte niemals direkt im Internet verfügbar gemacht werden.

Aktualisieren

  1. Aktualisieren Sie VERSION in .env auf den neuen Tag.
  2. Ziehen Sie das neue Image:
    docker compose -f docker-compose.yml -f docker-compose.prod.yml pull
  3. Erstellen Sie die Dienste neu:
    docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
  4. Bestätigen Sie den Zustand mit curl http://localhost:8080/healthz. Ausstehende Migrationen werden automatisch angewendet, während der neue Container startet.

Verwandte Artikel

  • Die Plattform mit Docker Compose für die Entwicklung betreiben
  • Den JWT-Signaturschlüssel für die Produktion festlegen
  • Checkliste zur Produktionshärtung
  • Ihre Datenbanken sichern und wiederherstellen
AH
Geschrieben von Alexander Hagemann
Aktualisiert:
Zugriff abgelehnt
Zugriff abgelehnt