feat: Update-Skript fuer Linux-Deployments (update.sh)
Stoppt den Docker-Stack, sichert lokale Aenderungen an docker-compose.yml per git stash (falls vorhanden), fuehrt git pull aus, spielt die Aenderungen zurueck und startet den Stack neu im Build-Modus. Bricht bei git-pull- oder Stash-Konflikten kontrolliert ab statt mit einem halb aktualisierten Stand weiterzumachen. Version 1.8.1. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
# Aktualisiert ein per Docker Compose betriebenes Deployment:
|
||||
# Stack stoppen -> lokale docker-compose.yml-Änderungen sichern (git stash)
|
||||
# -> git pull -> Änderungen zurückspielen -> Stack neu bauen und starten.
|
||||
#
|
||||
# Aufruf im Projektverzeichnis (dort, wo docker-compose.yml liegt):
|
||||
# ./update.sh
|
||||
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
ENV_FILE=".env.local"
|
||||
if [ ! -f "$ENV_FILE" ]; then
|
||||
echo "Fehler: $ENV_FILE nicht gefunden. Bitte im Projektverzeichnis ausführen." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "==> Stoppe laufenden Stack..."
|
||||
docker compose --env-file "$ENV_FILE" down
|
||||
|
||||
STASHED=0
|
||||
if ! git diff --quiet -- docker-compose.yml || ! git diff --cached --quiet -- docker-compose.yml; then
|
||||
echo "==> Sichere lokale Änderungen an docker-compose.yml (git stash)..."
|
||||
git stash push --message "update.sh: docker-compose.yml vor Pull gesichert" -- docker-compose.yml
|
||||
STASHED=1
|
||||
fi
|
||||
|
||||
echo "==> Hole neueste Version (git pull)..."
|
||||
git pull
|
||||
|
||||
if [ "$STASHED" -eq 1 ]; then
|
||||
echo "==> Stelle lokale Änderungen an docker-compose.yml wieder her..."
|
||||
if ! git stash pop; then
|
||||
echo "Fehler: git stash pop hatte einen Konflikt in docker-compose.yml." >&2
|
||||
echo "Bitte den Konflikt manuell auflösen (git status), danach Stack manuell starten:" >&2
|
||||
echo " docker compose --env-file $ENV_FILE up -d --build" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "==> Baue und starte Stack neu..."
|
||||
docker compose --env-file "$ENV_FILE" up -d --build
|
||||
|
||||
echo "==> Fertig. Status:"
|
||||
docker compose ps
|
||||
Reference in New Issue
Block a user