60 lines
1.7 KiB
Bash
Executable File
60 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
NET="hxki-internal"
|
|
SVC_LIST=("hxki-web:80" "hxki-n8n:5678" "hxki-mautic:80")
|
|
|
|
echo "=== COM2 DOCTOR · PORTS / LISTEN / LOGS ==="
|
|
|
|
echo "[0] Netzwerk"
|
|
docker network inspect "$NET" >/dev/null 2>&1 && echo "OK: $NET existiert" || { echo "FAIL: $NET fehlt"; exit 1; }
|
|
docker network inspect "$NET" --format '{{range $id,$c := .Containers}}{{println $c.Name}}{{end}}' | sort
|
|
|
|
echo
|
|
echo "[1] Container-Status"
|
|
docker ps --format 'NAME={{.Names}} STATUS={{.Status}} PORTS={{.Ports}}' | egrep 'hxki-|hx-caddy' || true
|
|
|
|
echo
|
|
echo "[2] Listen-Checks IN jedem Service-Container (ss/netstat)"
|
|
for entry in "${SVC_LIST[@]}"; do
|
|
c="${entry%%:*}"
|
|
p="${entry##*:}"
|
|
echo
|
|
echo "--- $c (soll lauschen auf :$p) ---"
|
|
docker exec -it "$c" sh -lc "
|
|
echo 'id:'; id || true
|
|
echo 'ps:'; ps aux | head -n 20 || true
|
|
echo 'ss:'; (ss -lntp 2>/dev/null || netstat -lntp 2>/dev/null || true) | egrep '(:$p\\b|LISTEN)' || true
|
|
echo 'localhost test:'; (wget -qO- http://127.0.0.1:$p/ >/dev/null && echo OK_LOCALHOST || echo FAIL_LOCALHOST) || true
|
|
" || echo "WARN: docker exec in $c fehlgeschlagen"
|
|
done
|
|
|
|
echo
|
|
echo "[3] Caddy -> Upstreams (mit Retry 30s)"
|
|
for entry in "${SVC_LIST[@]}"; do
|
|
host="${entry%%:*}"
|
|
port="${entry##*:}"
|
|
echo
|
|
echo "--- hx-caddy -> $host:$port ---"
|
|
docker exec -it hx-caddy sh -lc "
|
|
i=0
|
|
while [ \$i -lt 30 ]; do
|
|
wget -qO- http://$host:$port/ >/dev/null 2>&1 && { echo OK; exit 0; }
|
|
i=\$((i+1)); sleep 1
|
|
done
|
|
echo FAIL
|
|
exit 0
|
|
" || true
|
|
done
|
|
|
|
echo
|
|
echo "[4] Logs (letzte 120 Zeilen)"
|
|
for c in hxki-web hxki-n8n hxki-mautic hx-caddy; do
|
|
echo
|
|
echo "--- logs: $c ---"
|
|
docker logs --tail=120 "$c" 2>&1 || true
|
|
done
|
|
|
|
echo
|
|
echo "=== ENDE ==="
|