From 46d333d561121deb37d6a22871bcba5720ae721d Mon Sep 17 00:00:00 2001 From: Dusan Vojacek Date: Thu, 11 Jun 2026 15:52:25 +0200 Subject: [PATCH] =?UTF-8?q?deploy.sh:=20stop=20app=20kontejner=C5=AF=20p?= =?UTF-8?q?=C5=99ed=20buildem=20+=20self-sync=20skriptu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Slabý server: build s běžícím stackem se dusí (pozorování z provozu) — před docker compose build zastavit backend/frontend/postgrest (db zůstává). Self-sync: po git resetu se ROOT/deploy.sh atomicky obnoví z checkoutu (projeví se příštím během). První instalace nové verze ručně: install -m 0755 /opt/ems-deploy/app/deploy/deploy.sh /opt/ems-deploy/deploy.sh Co-Authored-By: Claude Opus 4.8 (1M context) --- deploy/deploy.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/deploy/deploy.sh b/deploy/deploy.sh index 2101dd0..5571c2d 100755 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# POZOR: Gitea Actions spouští KOPII tohoto skriptu v ${ROOT}/deploy.sh (ne checkout). +# Skript se po git resetu sám synchronizuje (atomicky, projeví se PŘÍŠTÍM během). +# První nasazení nové verze skriptu: ručně `install -m 0755 app/deploy/deploy.sh /opt/ems-deploy/deploy.sh`. set -euo pipefail ROOT="${EMS_DEPLOY_ROOT:-/opt/ems-deploy}" @@ -44,6 +47,13 @@ git -c safe.directory="$APP" -C "$APP" checkout main log "Git: reset --hard origin/main" git -c safe.directory="$APP" -C "$APP" reset --hard origin/main +# Self-sync skriptu pro PŘÍŠTÍ běh (atomický mv — běžící instance čte původní inode). +if ! cmp -s "$APP/deploy/deploy.sh" "$ROOT/deploy.sh"; then + log "Self-sync deploy.sh (projeví se příštím během)" + install -m 0755 "$APP/deploy/deploy.sh" "$ROOT/.deploy.sh.new" + mv -f "$ROOT/.deploy.sh.new" "$ROOT/deploy.sh" +fi + log "Sync compose -> $COMPOSE_DST" install -m 0644 "$COMPOSE_SRC" "$COMPOSE_DST" @@ -59,6 +69,12 @@ docker compose -f "$COMPOSE_DST" --env-file "$ENV_FILE" run --rm flyway validate log "Flyway migrate (docker compose run --rm flyway)" docker compose -f "$COMPOSE_DST" --env-file "$ENV_FILE" run --rm flyway migrate +# Slabý server: build s běžícím stackem se dusí (CPU/RAM). App kontejnery před +# buildem zastavit (db NE — flyway už doběhl, ale telemetrie/MCP/IDE na DB visí). +# Výpadek backendu během buildu = navržená degradace (Loxone autonomní fallback). +log "docker compose stop backend frontend postgrest (uvolnit zdroje pro build)" +docker compose -f "$COMPOSE_DST" --env-file "$ENV_FILE" stop backend frontend postgrest || true + log "docker compose build" docker compose -f "$COMPOSE_DST" --env-file "$ENV_FILE" build