#!/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 # Die propresenter/parser-Version wird ausschliesslich ueber die eingecheckte # composer.lock gepinnt (Standard-Composer-Praxis). Der Dockerfile-Schritt # "composer install" deployt exakt diesen Lock-Stand; "COPY composer.json # composer.lock" bricht die Composer-Layer automatisch, sobald sich die Lock # aendert. WICHTIG: composer.lock committen, wenn der Parser fortschreitet. # (Kein "composer update" hier: master des Parsers wurde umbenannt zu # bussnet/propresenter7-php-api, ein Re-Resolve von dev-master schlaegt fehl.) 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."