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
This commit is contained in:
parent
d5f3990f3b
commit
34c58ccc60
|
|
@ -27,6 +27,9 @@ chmod -R 775 storage bootstrap/cache database 2>/dev/null || true
|
||||||
rm -f /app/public/hot
|
rm -f /app/public/hot
|
||||||
|
|
||||||
echo "[boot] Syncing pre-built Vite assets to bind-mounted public/ ..."
|
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
|
cp -r /app/public-build/* /app/public/ 2>/dev/null || true
|
||||||
|
|
||||||
# Create RELATIVE storage symlink (public/storage → ../storage/app/public).
|
# Create RELATIVE storage symlink (public/storage → ../storage/app/public).
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,35 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
git fetch && git pull
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
docker-compose build
|
# docker compose v2 bevorzugen, Fallback auf v1
|
||||||
docker-compose up -d
|
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."
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue