Sprint 0 / #21: dev/staging стенд — docker-compose, тома, netns-харнесс #53

Merged
embeddevio merged 30 commits from feat/21-dev-stand into main 2026-10-28 22:12:03 +03:00
Showing only changes of commit 73e23bc3e4 - Show all commits
+7 -1
View File
@@ -84,7 +84,8 @@ if [ "$DO_UP" -eq 1 ]; then
fi
compose ps >/dev/null 2>&1 || fatal_env "compose project не поднят"
CID="$(compose ps -q awg-dash | head -n 1)"
cid() { compose ps -q awg-dash | head -n 1; }
CID="$(cid)"
[ -n "$CID" ] || fatal_env "контейнер awg-dash не найден в compose project"
wait_health() {
@@ -143,6 +144,9 @@ if compose exec -T awg-dash sh -c "printf '%s\n' '$MARKER_TEXT' > /config/.ac2-m
# 2) пересоздание контейнера (сильнее, чем restart)
compose up -d --force-recreate >/dev/null
if [ "$AC1" = "pass" ]; then wait_health 20 || NOTES+=("после пересоздания health не поднялся за 40с"); fi
# контейнер пересоздан — id сменился; без перезапроса docker inspect падает с 'no such object'
CID="$(cid)"
[ -n "$CID" ] || fatal_env "контейнер awg-dash не найден после пересоздания"
CFG_RECREATE="$(compose exec -T awg-dash cat /config/.ac2-marker 2>/dev/null | tr -d '\r\n' || true)"
DATA_RECREATE="$(compose exec -T awg-dash cat /data/.ac2-marker 2>/dev/null | tr -d '\r\n' || true)"
@@ -170,6 +174,8 @@ else
fi
# --- монтирования и здоровье -------------------------------------------------
CID="$(cid)"
[ -n "$CID" ] || fatal_env "контейнер awg-dash не найден в compose project (после перезапуска)"
MOUNTS="$(docker inspect -f '{{range .Mounts}}{{.Destination}}<-{{.Source}}{{"\n"}}{{end}}' "$CID" 2>/dev/null || true)"
printf '%s\n' "$MOUNTS" | grep -q '/config' || { FAILURES=$((FAILURES + 1)); bad "нет монтирования /config"; }
printf '%s\n' "$MOUNTS" | grep -q '/data' || { FAILURES=$((FAILURES + 1)); bad "нет монтирования /data"; }