5f0c7a7e6d
Adds multi-stage Dockerfiles (Go+Xapian CGO, Next.js standalone), docker-compose.yml, webhook-basierter Deploy-Flow und erweitertes install.sh mit interaktiver Modus-Auswahl. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
32 lines
781 B
Bash
Executable File
32 lines
781 B
Bash
Executable File
#!/bin/bash
|
|
# deploy.sh — Wird vom Webhook-Dienst bei GitHub-Push auf main aufgerufen.
|
|
# Läuft auf dem HOST (nicht im Container).
|
|
|
|
set -euo pipefail
|
|
|
|
INSTALL_DIR="${INSTALL_DIR:-/opt/archivmail}"
|
|
LOG_FILE="/var/log/archivmail/deploy.log"
|
|
|
|
log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" | tee -a "$LOG_FILE"; }
|
|
|
|
log "=== Deploy gestartet (von GitHub Webhook) ==="
|
|
|
|
cd "$INSTALL_DIR"
|
|
|
|
# 1. Aktuellen Stand holen
|
|
log "git pull origin main..."
|
|
git pull origin main
|
|
|
|
# 2. Neue Images bauen
|
|
log "docker compose build..."
|
|
docker compose build --no-cache
|
|
|
|
# 3. Stack neustarten (zero-downtime: postgres bleibt laufen)
|
|
log "docker compose up -d..."
|
|
docker compose up -d --remove-orphans
|
|
|
|
# 4. Alte ungenutzte Images aufräumen
|
|
docker image prune -f
|
|
|
|
log "=== Deploy abgeschlossen ==="
|