deploy.sh: stop app kontejnerů před buildem + self-sync skriptu
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) <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/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
|
set -euo pipefail
|
||||||
|
|
||||||
ROOT="${EMS_DEPLOY_ROOT:-/opt/ems-deploy}"
|
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"
|
log "Git: reset --hard origin/main"
|
||||||
git -c safe.directory="$APP" -C "$APP" 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"
|
log "Sync compose -> $COMPOSE_DST"
|
||||||
install -m 0644 "$COMPOSE_SRC" "$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)"
|
log "Flyway migrate (docker compose run --rm flyway)"
|
||||||
docker compose -f "$COMPOSE_DST" --env-file "$ENV_FILE" run --rm flyway migrate
|
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"
|
log "docker compose build"
|
||||||
docker compose -f "$COMPOSE_DST" --env-file "$ENV_FILE" build
|
docker compose -f "$COMPOSE_DST" --env-file "$ENV_FILE" build
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user