# Gateway Startup Guide - Korrigierte Befehle Dieses Dokument erklärt die korrekten Befehle zum Starten des API Gateways sowohl mit Gradle als auch mit Docker. ## Wichtiger Hinweis: Arbeitsverzeichnis **ALLE BEFEHLE MÜSSEN AUS DEM PROJEKT-ROOT-VERZEICHNIS AUSGEFÜHRT WERDEN:** ```bash # Sicherstellen, dass Sie im richtigen Verzeichnis sind cd /home/stefan/WsMeldestelle/Meldestelle # Überprüfen des aktuellen Verzeichnisses pwd # Sollte ausgeben: /home/stefan/WsMeldestelle/Meldestelle # Überprüfen, dass gradlew vorhanden ist ls -la gradlew ``` ## 1. Gateway mit Gradle starten ### Entwicklungsumgebung (Development) ```bash # Aus dem Projekt-Root-Verzeichnis: ./gradlew :infrastructure:gateway:bootRun # Mit spezifischem Profil: ./gradlew :infrastructure:gateway:bootRun --args='--spring.profiles.active=dev' ``` ### Produktionsumgebung ```bash # Gateway JAR bauen: ./gradlew :infrastructure:gateway:bootJar # Gateway ausführen: java -jar infrastructure/gateway/build/libs/gateway-*.jar ``` ## 2. Gateway mit Docker starten ### Docker Image bauen ```bash # Aus dem Projekt-Root-Verzeichnis: docker build -t meldestelle/gateway:latest -f infrastructure/gateway/Dockerfile . # Mit Build-Argumenten (optional): docker build \ --build-arg SPRING_PROFILES_ACTIVE=prod \ -t meldestelle/gateway:latest \ -f infrastructure/gateway/Dockerfile . ``` ### Docker Container starten ```bash # Einfacher Start: docker run -p 8080:8080 meldestelle/gateway:latest # Mit Umgebungsvariablen: docker run \ -p 8080:8080 \ -e SPRING_PROFILES_ACTIVE=prod \ -e CONSUL_HOST=localhost \ -e CONSUL_PORT=8500 \ --name gateway \ meldestelle/gateway:latest # Im Hintergrund starten: docker run -d \ -p 8080:8080 \ -e SPRING_PROFILES_ACTIVE=prod \ --name gateway \ meldestelle/gateway:latest ``` ### Docker Container verwalten ```bash # Container Status prüfen: docker ps # Logs anzeigen: docker logs gateway # Container stoppen: docker stop gateway # Container entfernen: docker rm gateway # Image entfernen: docker rmi meldestelle/gateway:latest ``` ## 3. Gateway mit Docker Compose ### docker-compose.yml verwenden ```bash # Services starten (inkl. Gateway): docker-compose up -d gateway # Oder alle Services: docker-compose up -d # Logs verfolgen: docker-compose logs -f gateway # Services stoppen: docker-compose down ``` ## 4. Fehlerbehebung ### Häufige Fehler und Lösungen #### "./gradlew: Datei oder Verzeichnis nicht gefunden" **Problem:** Sie befinden sich nicht im Projekt-Root-Verzeichnis. **Lösung:** ```bash cd /home/stefan/WsMeldestelle/Meldestelle ls -la gradlew # Sollte die gradlew-Datei anzeigen ``` #### "lstat infrastructure: no such file or directory" **Problem:** Docker build wird mit falschem Kontext ausgeführt. **Lösung:** ```bash # Sicherstellen, dass Sie im Projekt-Root sind: cd /home/stefan/WsMeldestelle/Meldestelle # Dockerfile-Pfad korrekt angeben: docker build -t meldestelle/gateway:latest -f infrastructure/gateway/Dockerfile . ``` #### "Image nicht gefunden" beim docker run **Problem:** Das Image wurde noch nicht gebaut. **Lösung:** ```bash # Zuerst das Image bauen: docker build -t meldestelle/gateway:latest -f infrastructure/gateway/Dockerfile . # Dann den Container starten: docker run -p 8080:8080 meldestelle/gateway:latest ``` ## 5. Gateway Health Check Nach dem Start können Sie die Gateway-Gesundheit überprüfen: ```bash # Health Endpoint: curl http://localhost:8080/actuator/health # Metriken: curl http://localhost:8080/actuator/metrics # Gateway-Routen: curl http://localhost:8080/actuator/gateway/routes ``` ## 6. Umgebungsvariablen Wichtige Umgebungsvariablen für die Gateway-Konfiguration: ```bash # Spring Profil export SPRING_PROFILES_ACTIVE=dev|test|prod # Consul Konfiguration export CONSUL_HOST=localhost export CONSUL_PORT=8500 # Gateway Admin Credentials export GATEWAY_ADMIN_USER=admin export GATEWAY_ADMIN_PASSWORD=secure-password # Logging Level export LOGGING_LEVEL_ROOT=INFO export LOGGING_LEVEL_GATEWAY=DEBUG ``` ## 7. Zusammenfassung der korrekten Befehle ```bash # IMMER aus dem Projekt-Root-Verzeichnis: cd /home/stefan/WsMeldestelle/Meldestelle # Gateway mit Gradle starten: ./gradlew :infrastructure:gateway:bootRun # Gateway Docker Image bauen: docker build -t meldestelle/gateway:latest -f infrastructure/gateway/Dockerfile . # Gateway Container starten: docker run -p 8080:8080 meldestelle/gateway:latest ``` --- **Wichtiger Hinweis:** Alle Pfade sind relativ zum Projekt-Root-Verzeichnis (`/home/stefan/WsMeldestelle/Meldestelle`). Stellen Sie sicher, dass Sie sich immer in diesem Verzeichnis befinden, bevor Sie die Befehle ausführen.