186 lines
3.9 KiB
Markdown
186 lines
3.9 KiB
Markdown
# 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!
|