#!/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."