Files
hoerdle/DEBUG_VERSION.md
2025-11-25 10:22:12 +01:00

3.9 KiB

Debug Version Display - Remote Server Checklist

1. Überprüfe Git-Tags auf dem Remote-Server

# 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

# 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

# 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

# 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

# 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

# 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

# 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

git fetch --tags
git describe --tags --always

Problem 2: Container wurde nicht neu gebaut

docker compose build --no-cache
docker compose up -d

Problem 3: Alte version.txt im Container

# 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

# Ü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)

# 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

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!