#!/bin/bash # Container bauen und (neu) starten – auf dem Server ausführen: /deploy/update-docker.sh # Die Daten in data/ und die Einstellungen in config.json bleiben dabei unberührt. set -euo pipefail cd "$(dirname "$(readlink -f "$0")")/.." # Neuen Code holen, falls das Projekt per Git auf den Server kam if [ -d .git ]; then git pull --ff-only fi # Ohne config.json würde Docker an ihrer Stelle einen leeren Ordner anlegen if [ ! -f config.json ]; then cp config.example.json config.json echo "config.json wurde aus config.example.json angelegt – bei Bedarf API-Keys eintragen und das Skript erneut starten." fi # Datenordner: der Container läuft als UID 1000 und muss hier schreiben dürfen mkdir -p data if [ "$(stat -c %u data)" != "1000" ]; then echo "Setze Besitzer von data/ auf UID 1000 (sudo) ..." sudo chown -R 1000:1000 data fi docker compose up -d --build docker image prune -f >/dev/null sleep 5 docker compose ps