Files
meldestelle/GATEWAY-STARTUP-GUIDE.md
T
2025-09-04 13:54:30 +02:00

201 lines
4.6 KiB
Markdown

# 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.