Backup-Sidecar: täglicher pg_dump scharf geschaltet
Das dokumentierte Backup lief real nie (stock postgres-Image ohne Cron, backup.sh nirgends eingebunden) -> bei Volume-/Disk-Verlust drohte Totalverlust. - Neuer service "backup" (docker-compose.yml): postgres:16-alpine als Sidecar, taeglicher pg_dump um BACKUP_HOUR (Default 03:00 Europe/Berlin) - backup-loop.sh: abhaengigkeitsfreier Tages-Scheduler (umgeht busybox-cron- Environment-Eigenheiten) - backup.sh korrigiert: laeuft remote gegen PGHOST mit PGPASSWORD; -Fc statt "-Fc | gzip" (war doppelt komprimiert und als .sql.gz nicht restore-bar) -> .dump - BACKUP_HOUR/BACKUP_RETENTION_DAYS konfigurierbar (.env.example) - operations.md: Backup-/Restore-Anleitung an Ist-Zustand angepasst Verifiziert: pg_dump erstellt + pg_restore in frische DB, Daten intakt. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
39e259f3ac
commit
7285ed9cae
5 files changed
+95
-13
No files matched your search
@@ -21,6 +21,33 @@ services:
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
# Backup-Sidecar: täglicher pg_dump des postgres-Service nach cockpit_backups.
|
||||
# Nutzt scripts/backup.sh (Custom-Format-Dump + Retention + API-Heartbeat),
|
||||
# getaktet von scripts/backup-loop.sh. Stock postgres-Image → pg_dump passt
|
||||
# versionsgenau (16) zur DB. Restore: siehe docs/operations.md.
|
||||
backup:
|
||||
image: postgres:16-alpine
|
||||
container_name: cockpit-backup
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER:-cockpit}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-cockpit}
|
||||
PGHOST: postgres
|
||||
API_URL: http://api:3000
|
||||
CRON_BEARER_TOKEN: ${CRON_BEARER_TOKEN}
|
||||
BACKUP_HOUR: ${BACKUP_HOUR:-03}
|
||||
BACKUP_RETENTION_DAYS: ${BACKUP_RETENTION_DAYS:-14}
|
||||
TZ: Europe/Berlin
|
||||
volumes:
|
||||
- cockpit_backups:/backups
|
||||
- ./scripts/backup.sh:/usr/local/bin/backup.sh:ro
|
||||
- ./scripts/backup-loop.sh:/usr/local/bin/backup-loop.sh:ro
|
||||
entrypoint: ['/bin/sh', '/usr/local/bin/backup-loop.sh']
|
||||
|
||||
api:
|
||||
build:
|
||||
context: .
|
||||
|
||||
Reference in new issue
Block a user