diff --git a/build/boot-container.sh b/build/boot-container.sh index 1eccc2a..9e5296d 100755 --- a/build/boot-container.sh +++ b/build/boot-container.sh @@ -27,6 +27,9 @@ chmod -R 775 storage bootstrap/cache database 2>/dev/null || true rm -f /app/public/hot echo "[boot] Syncing pre-built Vite assets to bind-mounted public/ ..." +# Alte gehashte Assets entfernen, damit sich im bind-mounteten public/build +# kein Muell aus frueheren Builds ansammelt (cp -r merged nur, loescht nie). +rm -rf /app/public/build cp -r /app/public-build/* /app/public/ 2>/dev/null || true # Create RELATIVE storage symlink (public/storage → ../storage/app/public). diff --git a/update-prod.sh b/update-prod.sh index 83cadb3..e98a757 100755 --- a/update-prod.sh +++ b/update-prod.sh @@ -1,6 +1,35 @@ #!/bin/bash +set -euo pipefail -git fetch && git pull +cd "$(dirname "$0")" -docker-compose build -docker-compose up -d +# 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."