meldestelle/docs/99_Journal/2026-02-13.md

2.3 KiB

type status owner last_update
Journal ACTIVE Curator 2026-02-13

Journal - 2026-02-13

📝 Zusammenfassung

Heute wurden Inkonsistenzen in der Konfiguration der Backend-Services behoben, die zu Verbindungsproblemen führten. Zudem wurde der Build-Prozess für das Frontend optimiert.

🛠️ Änderungen

1. Backend Konfiguration (Fix 503 Service Unavailable)

  • Problem: Der ping-service war über das Gateway nicht erreichbar (503), da die Route im Gateway hart auf http://ping-service:8082 kodiert war. Dies funktionierte im Docker-Netzwerk, aber nicht beim lokalen Start (Localhost).
  • Lösung:
    • GatewayConfig.kt: Die URI für den Ping-Service wurde dynamisch gemacht (${ping.service.url}).
    • application.yaml (Gateway): Default-Wert für ping.service.url auf http://localhost:8082 gesetzt (für lokale Entwicklung).
    • dc-backend.yaml: Environment-Variable PING_SERVICE_URL auf http://ping-service:8082 gesetzt (für Docker).
    • Zusätzlich wurden Inkonsistenzen bei Port-Variablennamen (PING_SERVER_PORT vs PING_SERVICE_PORT) zwischen .env und application.yaml bereinigt.

2. Frontend Build Optimierung

  • Problem: Der Build jsBrowserDistribution -Pproduction=true dauerte extrem lange (>15 min) und hing.
  • Ursache: Generierung von Source Maps im Production-Mode bei großen Kotlin/JS Projekten.
  • Lösung:
    • build.gradle.kts (meldestelle-portal): Logik angepasst, sodass Source Maps im Production-Mode standardmäßig deaktiviert sind (sourceMaps = false), es sei denn, sie werden explizit angefordert.
    • Ergebnis: Build-Zeit auf ~9 Sekunden reduziert.

📚 Gelerntes

  • Source Maps: Sind essenziell für Debugging, aber extrem teuer im Build. Für Production-Builds (Docker Images) sollten sie deaktiviert werden, um Build-Zeiten und Image-Größe zu optimieren.
  • Hybrid-Betrieb: Services sollten so konfiguriert sein, dass sie sowohl "fully dockerized" als auch "lokal + Docker-Infra" laufen können, ohne Code-Änderungen (Nutzung von Properties/Env-Vars für Hostnames).

🔜 Nächste Schritte

  • Lokalen Test des gesamten Stacks (Frontend im Docker Container + Backend lokal/Docker) abschließen.
  • Verifizierung der Keycloak-Integration im Frontend.