42 lines
1.3 KiB
Bash
Executable File
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 ==="
|