Files
2025-11-25 12:27:53 +03:30

54 lines
2.6 KiB
YAML

---
services:
pgbackup:
image: postgres:18-alpine
container_name: pgbackup
restart: always
environment:
PGPASSWORD: ${POSTGRES_ADMIN_PASSWORD}
POSTGRES_HOST: postgres
POSTGRES_USER: ${POSTGRES_ADMIN_USER}
DB_LIST: ${BKP_DB_LIST}
TIMEZONE: ${TIMEZONE}
volumes:
- ./backups:/backups
- ./scripts/backup/pg-dump.sh:/pg-dump.sh
- ./scripts/backup/pg-dump.cron:/etc/crontabs/root
entrypoint: ["/bin/sh", "-c", "# map host /backups ownership to container backup user\nHOST_UID=$$(stat -c '%u' /backups 2>/dev/null || echo 1000) && HOST_GID=$$(stat -c '%g' /backups 2>/dev/null || echo 1000) && addgroup -g \"$$HOST_GID\" backup 2>/dev/null || true && adduser -D -u \"$$HOST_UID\" -G backup backup 2>/dev/null || true && mkdir -p /var/log /backups && chown -R \"$$HOST_UID\":\"$$HOST_GID\" /var/log /backups 2>/dev/null || true && chmod +x /pg-dump.sh && chown root:root /etc/crontabs/root 2>/dev/null || true && crond -f"]
backup-manager:
image: alpine:latest
container_name: backup-manager
restart: always
depends_on:
- pgbackup
environment:
BACKUP_RETENTION_COUNT: ${BKP_RETENTION_COUNT}
BACKUP_RETENTION_DAYS: ${BKP_RETENTION_DAYS}
TIMEZONE: ${TIMEZONE}
volumes:
- ./backups:/backups
- type: volume
source: odoo-db-data
target: /odoo_db_data
read_only: true
- type: volume
source: odoo-config
target: /odoo_config
read_only: true
- type: volume
source: gitea_data
target: /gitea_data
read_only: true
- type: volume
source: opencloud-data
target: /opencloud_data
read_only: true
- type: volume
source: opencloud-config
target: /opencloud_config
read_only: true
- ./scripts/backup/manage-backups.sh:/manage-backups.sh
- ./scripts/backup/backup-manager.cron:/etc/crontabs/root
entrypoint: ["/bin/sh", "-c", "# install bsdtar for xattr-aware archives\napk add --no-cache libarchive-tools attr >/dev/null \n# map host /backups ownership to container backup user\nHOST_UID=$$(stat -c '%u' /backups 2>/dev/null || echo 1000) && HOST_GID=$$(stat -c '%g' /backups 2>/dev/null || echo 1000) && addgroup -g \"$$HOST_GID\" backup 2>/dev/null || true && adduser -D -u \"$$HOST_UID\" -G backup backup 2>/dev/null || true && mkdir -p /var/log /backups && chown -R \"$$HOST_UID\":\"$$HOST_GID\" /var/log /backups 2>/dev/null || true && chmod +x /manage-backups.sh && chown root:root /etc/crontabs/root 2>/dev/null || true && crond -f"]