# Debug Version Display - Remote Server Checklist ## 1. Überprüfe Git-Tags auf dem Remote-Server ```bash # Im Projekt-Verzeichnis auf dem Remote-Server cd /path/to/hoerdle # Zeige alle Tags git tag -l # Zeige aktuellen Tag/Version git describe --tags --always # Wenn keine Tags angezeigt werden: git fetch --tags git describe --tags --always ``` **Erwartetes Ergebnis:** Sollte `v0.1.0.2` oder ähnlich zeigen --- ## 2. Überprüfe die version.txt im Container ```bash # Zeige den Inhalt der Version-Datei im laufenden Container docker exec hoerdle cat /app/version.txt # Sollte die Version zeigen, z.B. "v0.1.0.2" ``` **Erwartetes Ergebnis:** Die aktuelle Version, nicht "unknown" oder "dev" --- ## 3. Überprüfe die Umgebungsvariable im Container ```bash # Zeige alle Umgebungsvariablen docker exec hoerdle env | grep APP_VERSION # Sollte APP_VERSION=v0.1.0.2 oder ähnlich zeigen ``` **Erwartetes Ergebnis:** `APP_VERSION=v0.1.0.2` --- ## 4. Überprüfe die Container-Logs beim Start ```bash # Zeige die letzten Logs beim Container-Start docker logs hoerdle | head -20 # Suche speziell nach Version-Ausgaben docker logs hoerdle | grep -i version ``` **Erwartetes Ergebnis:** Eine Zeile wie "App version: v0.1.0.2" --- ## 5. Teste die API direkt ```bash # Rufe die Version-API auf curl http://localhost:3010/api/version # Sollte JSON zurückgeben: {"version":"v0.1.0.2"} ``` **Erwartetes Ergebnis:** `{"version":"v0.1.0.2"}` --- ## 6. Überprüfe wann der Container gebaut wurde ```bash # Zeige Image-Informationen docker images | grep hoerdle # Zeige detaillierte Container-Informationen docker inspect hoerdle | grep -i created ``` **Wichtig:** Wenn das Image vor deinem letzten Deployment erstellt wurde, wurde es noch nicht neu gebaut! --- ## 7. Überprüfe Build-Logs ```bash # Baue das Image neu und beobachte die Ausgabe docker compose build --no-cache 2>&1 | tee build.log # Suche nach der Version-Ausgabe im Build grep -i "Building version" build.log ``` **Erwartetes Ergebnis:** Eine Zeile wie "Building version: v0.1.0.2" --- ## Häufige Probleme und Lösungen ### Problem 1: Tags nicht auf dem Server ```bash git fetch --tags git describe --tags --always ``` ### Problem 2: Container wurde nicht neu gebaut ```bash docker compose build --no-cache docker compose up -d ``` ### Problem 3: Alte version.txt im Container ```bash # Stoppe Container, lösche Image, baue neu docker compose down docker rmi $(docker images | grep hoerdle | awk '{print $3}') docker compose build --no-cache docker compose up -d ``` ### Problem 4: .git Verzeichnis nicht im Build-Context ```bash # Überprüfe ob .git existiert ls -la .git # Überprüfe .dockerignore (sollte .git NICHT ausschließen) cat .dockerignore 2>/dev/null || echo "Keine .dockerignore Datei" ``` --- ## Vollständiger Neustart (wenn nichts anderes hilft) ```bash # 1. Stoppe alles docker compose down # 2. Lösche alte Images docker rmi $(docker images | grep hoerdle | awk '{print $3}') # 3. Hole neueste Änderungen und Tags git pull git fetch --tags # 4. Überprüfe Version lokal git describe --tags --always # 5. Baue komplett neu docker compose build --no-cache # 6. Starte Container docker compose up -d # 7. Überprüfe Logs docker logs hoerdle | grep -i version # 8. Teste API curl http://localhost:3010/api/version ``` --- ## Debugging-Befehl für alle Checks auf einmal ```bash echo "=== Git Tags ===" && \ git describe --tags --always && \ echo -e "\n=== version.txt im Container ===" && \ docker exec hoerdle cat /app/version.txt 2>/dev/null || echo "Container läuft nicht oder Datei fehlt" && \ echo -e "\n=== APP_VERSION Env ===" && \ docker exec hoerdle env | grep APP_VERSION || echo "Variable nicht gesetzt" && \ echo -e "\n=== API Response ===" && \ curl -s http://localhost:3010/api/version && \ echo -e "\n\n=== Container Created ===" && \ docker inspect hoerdle | grep -i created | head -1 ``` Kopiere diesen Befehl und führe ihn auf dem Remote-Server aus. Schicke mir die Ausgabe!