80 lines
2.4 KiB
Bash
Executable File
80 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
DOCKER_DIR="/opt/hx-ki/docker"
|
|
cd "$DOCKER_DIR"
|
|
|
|
echo "==> Schritt 1: Backups der Compose-Dateien anlegen ..."
|
|
for f in docker-compose.yml docker-compose.override.yml; do
|
|
if [ -f "$f" ]; then
|
|
cp "$f" "${f}.bak_hxkiweb_$(date +%Y%m%d_%H%M%S)"
|
|
echo " Backup erstellt: ${f}.bak_hxkiweb_..."
|
|
else
|
|
echo " Hinweis: $f nicht vorhanden, überspringe."
|
|
fi
|
|
done
|
|
|
|
echo "==> Schritt 2: Eventuelle alte hxki-web Container entfernen ..."
|
|
docker rm -f hxki-web docker-hxki-web-1 2>/dev/null || true
|
|
|
|
echo "==> Schritt 3: In ALLEN Compose-Dateien 'ports:'-Blöcke von hxki-web entfernen ..."
|
|
for f in docker-compose.yml docker-compose.override.yml; do
|
|
if [ ! -f "$f" ]; then
|
|
continue
|
|
fi
|
|
|
|
echo " Bearbeite $f ..."
|
|
awk '
|
|
# Start des hxki-web Blocks erkennen (egal wie eingerückt)
|
|
/^[[:space:]]*hxki-web:/ {
|
|
in_hw = 1
|
|
print
|
|
next
|
|
}
|
|
|
|
# Wenn wir im hxki-web Block sind und eine Zeile mit \"ports:\" kommt,
|
|
# Ports-Block markieren, aber nicht drucken
|
|
in_hw && $1 == "ports:" {
|
|
in_ports = 1
|
|
next
|
|
}
|
|
|
|
# Solange wir im Ports-Block sind:
|
|
in_ports {
|
|
# Zeilen mit \"-\" (Port-Mapping) überspringen
|
|
if ($1 == "-") next
|
|
# Erste Zeile, die kein \"-\" mehr ist -> Ports-Block Ende
|
|
in_ports = 0
|
|
}
|
|
|
|
# Wenn wir im hxki-web Block sind und eine leere Zeile kommt,
|
|
# ist der Block als solcher zu Ende
|
|
in_hw && NF == 0 {
|
|
in_hw = 0
|
|
print
|
|
next
|
|
}
|
|
|
|
# Alle anderen Zeilen ganz normal drucken
|
|
{ print }
|
|
' "$f" > "$f.tmp" && mv "$f.tmp" "$f"
|
|
done
|
|
|
|
echo "==> Schritt 4: Compose-Konfiguration prüfen (Services auflisten) ..."
|
|
docker compose config --services || true
|
|
|
|
echo "==> Schritt 5: Orchester starten (inkl. Entfernen von Waisen-Containern) ..."
|
|
docker compose up -d --remove-orphans
|
|
|
|
echo "==> Schritt 6: Status von hxki-web prüfen ..."
|
|
docker ps | grep hxki-web || echo " Hinweis: Kein laufender Container mit 'hxki-web' im Namen gefunden."
|
|
|
|
echo "==> Schritt 7: Caddy neu laden (falls vorhanden) ..."
|
|
if docker ps | grep -q hx-caddy-caddy-1; then
|
|
docker exec -it hx-caddy-caddy-1 caddy reload || echo " Hinweis: Caddy-Reload hat eine Warnung produziert."
|
|
else
|
|
echo " Hinweis: Caddy-Container hx-caddy-caddy-1 läuft nicht oder heißt anders."
|
|
fi
|
|
|
|
echo "==> FERTIG: Alle ports:-Blöcke für hxki-web entfernt, Orchester läuft neu."
|