Files
Assetmanager/update_from_git.sh

74 lines
1.6 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
set -Eeuo pipefail
APP_DIR="/volume2/docker_nvme/assetmanager"
REMOTE_URL="https://git.jusaro.de/Roland/Assetmanager.git"
BRANCH="main"
cd "$APP_DIR"
command -v git >/dev/null || {
echo "Fehler: Git ist nicht installiert."
exit 1
}
command -v docker >/dev/null || {
echo "Fehler: Docker wurde nicht gefunden."
exit 1
}
[ -d ".git" ] || {
echo "Fehler: $APP_DIR ist kein Git-Repository."
exit 1
}
# Prüfen, ob wichtige lokale Daten tatsächlich ignoriert werden
for path in \
".env" \
"data/config/config.json" \
"data/postgres/__check__" \
"data/uploads/__check__" \
"data/logs/__check__"
do
if ! git check-ignore -q --no-index "$path"; then
echo "Sicherheitsabbruch: $path wird nicht durch .gitignore geschützt."
exit 1
fi
done
# Remote-Adresse korrigieren
git remote set-url origin "$REMOTE_URL"
echo "AssetManager wird gestoppt ..."
docker compose down
SUCCESS=0
restart_on_error() {
if [ "$SUCCESS" -eq 0 ]; then
echo "Update fehlgeschlagen – Container werden wieder gestartet."
docker compose up -d || true
fi
}
trap restart_on_error EXIT
echo "Aktueller Stand wird von Gitea geladen ..."
git fetch --prune origin
echo "Lokaler Programmstand wird ersetzt ..."
git reset --hard "origin/$BRANCH"
# Entfernt unversionierte, aber nicht ignorierte Dateien.
# .env, Datenbank, Uploads und Konfiguration bleiben erhalten.
git clean -fd
echo "Container werden neu gebaut und gestartet ..."
docker compose up -d --build
SUCCESS=1
trap - EXIT
echo "Update abgeschlossen."
docker compose logs --tail=100 -f