39 lines
1.1 KiB
Bash
Executable File
39 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
cd /opt/hx-ki/com2-stack
|
|
|
|
F="docker-compose.yml"
|
|
[ -f "$F" ] || { echo "FEHLT: /opt/hx-ki/com2-stack/$F"; exit 1; }
|
|
|
|
echo "=== COM2: REMOVE GRAFANA ==="
|
|
|
|
# Stop/Remove nur über Compose (Orchester-Prinzip)
|
|
docker compose down
|
|
|
|
# Entferne Service-Block "grafana:" (YAML-Block)
|
|
python3 - <<'PY'
|
|
import re, pathlib
|
|
p = pathlib.Path("/opt/hx-ki/com2-stack/docker-compose.yml")
|
|
s = p.read_text()
|
|
|
|
# Serviceblock grafana (unter services:) entfernen
|
|
# simpel & deterministisch: von " grafana:" bis zum nächsten " <service>:" auf gleicher Einrückung
|
|
s2 = re.sub(r'(?ms)^\s{2}grafana:\s*\n(?:^\s{4}.*\n|^\s{6}.*\n|^\s{8}.*\n|^\s*\n)*?(?=^\s{2}[A-Za-z0-9_.-]+:\s*$|\Z)', '', s)
|
|
|
|
# Volume grafana_data entfernen (unter volumes:)
|
|
s2 = re.sub(r'(?ms)^\s{2}grafana_data:\s*\n(?:^\s{4}.*\n|^\s*\n)*?(?=^\s{2}[A-Za-z0-9_.-]+:\s*$|\Z)', '', s2)
|
|
|
|
p.write_text(s2)
|
|
print("OK: grafana service/volume entfernt (falls vorhanden).")
|
|
PY
|
|
|
|
echo "[VALIDATE]"
|
|
docker compose config >/dev/null
|
|
echo "OK: Compose valide."
|
|
|
|
echo "[UP]"
|
|
docker compose up -d --remove-orphans
|
|
|
|
echo "=== DONE ==="
|
|
docker ps --format 'NAME={{.Names}} STATUS={{.Status}}'
|