pp-planer/update-prod.sh
Thorsten Bus 34c58ccc60 fix(deploy): make prod update complete and reliable
- pin parser updates: bump dev-master in composer.lock to bust Docker
  composer-layer cache so propresenter/parser actually redeploys
- add set -euo pipefail + git reset --hard to avoid silent partial deploys
- docker compose v2/v1 fallback, build --pull, up --force-recreate, prune
- boot-container: rm -rf public/build before asset sync to drop stale assets
2026-06-14 10:33:54 +02:00

36 lines
1.1 KiB
Bash
Executable file

#!/bin/bash
set -euo pipefail
cd "$(dirname "$0")"
# docker compose v2 bevorzugen, Fallback auf v1
if docker compose version >/dev/null 2>&1; then
DC="docker compose"
else
DC="docker-compose"
fi
echo "[deploy] Hole neuesten Stand von origin/master ..."
git fetch --all --prune
# Harter Reset: verhindert pull-Konflikte. Sicher, da public/build, storage/
# und database/ gitignored sind und nicht angefasst werden.
git reset --hard origin/master
# propresenter/parser ist dev-master und in composer.lock auf einen festen
# Commit gepinnt. Ohne Lock-Aenderung bleibt die Docker-Composer-Layer gecacht
# und ein neuer Parser-Stand wuerde NIE deployt. Daher Lock hier aktiv heben.
echo "[deploy] Aktualisiere dev-master Abhaengigkeit (propresenter/parser) ..."
docker run --rm -v "$PWD":/app -w /app composer:2 \
update propresenter/parser --no-scripts --no-interaction
echo "[deploy] Baue Image (inkl. aktualisierter Basis-Images) ..."
$DC build --pull
echo "[deploy] Starte Container neu ..."
$DC up -d --force-recreate
echo "[deploy] Raeume alte Images auf ..."
docker image prune -f
echo "[deploy] Fertig."