bollwerk/backup/Dockerfile
Jens Reinemann d66f0d65c3 feat: tägliches PostgreSQL-Backup mit 1 GB Rotation (#87)
- backup/Dockerfile: Alpine 3.21 + postgresql-client + dcron
- backup/backup.sh: pg_dump -> MD5-Checksum-Vergleich (skip bei unveränderter DB)
  -> gzip-komprimiertes Backup mit Timestamp
  -> Rotation: älteste .sql.gz löschen bis Gesamtgröße < 1 GB
- docker-compose.yml: neuer Service 'backup', Volume 'backup_data'
- Cronjob: täglich 03:00 UTC
2026-05-17 11:06:52 +02:00

14 lines
437 B
Docker

FROM alpine:3.21
# Install PostgreSQL client and dcron (lightweight cron daemon)
RUN apk add --no-cache postgresql-client dcron
COPY backup.sh /usr/local/bin/backup.sh
RUN chmod +x /usr/local/bin/backup.sh
# Crontab: run backup daily at 03:00 UTC
RUN echo "0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1" \
> /etc/crontabs/root
# crond -f: run in foreground; -l 2: log level notice
CMD ["crond", "-f", "-l", "2"]