Files
hx-ki.com2/com2_force_network_external.sh
2026-03-06 15:22:40 +00:00

42 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
F="/opt/hx-ki/com2-stack/docker-compose.yml"
NET="hxki-internal"
[ -f "$F" ] || { echo "FEHLT: $F"; exit 1; }
echo "=== COM2: FORCE NETWORK external:true ==="
echo "[0] Quick-Scan (wo steht networks: gerade?)"
grep -nE '^(networks:| networks:| networks:)' "$F" || echo "INFO: kein networks:-Block gefunden"
echo "[1] Docker-Netzwerk auf Host sicherstellen: $NET"
docker network inspect "$NET" >/dev/null 2>&1 || docker network create "$NET" >/dev/null
echo "[2] Compose reparieren: entferne Top-Level networks:-Block (falls vorhanden) und setze sauber neu"
python3 - <<'PY'
from pathlib import Path
import re
p = Path("/opt/hx-ki/com2-stack/docker-compose.yml")
s = p.read_text()
# Entferne NUR Top-Level "networks:" Block (beginnt ganz links)
# Annahme: networks ist Top-Level Key. Falls er kaputt eingerückt ist, wird er später durch sauberen Block überschrieben.
s = re.sub(r'(?ms)^\s*networks:\s*\n(?:^[ \t].*\n)*', '', s)
# Hänge kanonischen Block an
s = s.rstrip() + "\n\nnetworks:\n hxki-internal:\n external: true\n"
p.write_text(s)
print("OK: networks/hxki-internal external:true erzwungen.")
PY
echo "[3] VALIDATE (muss clean sein)"
docker compose -f "$F" config >/dev/null
echo "OK: Compose valide."
echo "=== ENDE ==="