- Изменено имя папки в S3 на имя проекта по умолчанию - Обновлено количество хранимых версий бэкапов вместо дней - Изменено расписание запуска бэкапов на 05:00 - Обновлены переменные окружения в примерах и документации - Улучшено логирование и обработка старых бэкапов
61 lines
2.8 KiB
YAML
61 lines
2.8 KiB
YAML
# ===========================================
|
||
# Universal Docker Project Backup Service
|
||
# Автоматическое резервное копирование Docker-проектов в S3
|
||
# ===========================================
|
||
|
||
services:
|
||
backup:
|
||
build: .
|
||
container_name: project-backup
|
||
restart: unless-stopped
|
||
|
||
environment:
|
||
- TZ=${TZ:-Europe/Moscow}
|
||
|
||
# Имя проекта (используется в названии архива: {name}-backup-2025-10-22_03-00-00.tar.gz)
|
||
- BACKUP_PROJECT_NAME=${BACKUP_PROJECT_NAME:-project}
|
||
|
||
# S3 бакет для хранения бэкапов (обязательно)
|
||
- BACKUP_S3_BUCKET=${BACKUP_S3_BUCKET}
|
||
|
||
# Папка внутри бакета (необязательно, по умолчанию - имя проекта)
|
||
- BACKUP_S3_FOLDER=${BACKUP_S3_FOLDER:-}
|
||
|
||
# Эндпоинт S3 сервиса (обязательно): s3.twcstorage.ru, storage.yandexcloud.net и т.д.
|
||
- BACKUP_S3_ENDPOINT=${BACKUP_S3_ENDPOINT}
|
||
|
||
# Ключи доступа к S3 (обязательно)
|
||
- BACKUP_S3_ACCESS_KEY=${BACKUP_S3_ACCESS_KEY}
|
||
- BACKUP_S3_SECRET_KEY=${BACKUP_S3_SECRET_KEY}
|
||
|
||
# Регион S3
|
||
- BACKUP_S3_REGION=${BACKUP_S3_REGION:-ru-1}
|
||
|
||
# Количество последних версий бэкапов для хранения (автоматически удаляются старые)
|
||
- BACKUP_RETENTION_COUNT=${BACKUP_RETENTION_COUNT:-30}
|
||
|
||
# Расписание запуска в формате cron: "0 5 * * *" = каждый день в 05:00 МСК
|
||
- BACKUP_SCHEDULE=${BACKUP_SCHEDULE:-0 5 * * *}
|
||
|
||
# Запускать ли бэкап сразу при старте контейнера (true/false)
|
||
- BACKUP_ON_START=${BACKUP_ON_START:-false}
|
||
|
||
# Список сервисов для остановки перед бекапом через пробел (необязательно): gitea gitea-db
|
||
- BACKUP_STOP_SERVICES=${BACKUP_STOP_SERVICES:-}
|
||
|
||
volumes:
|
||
# Директория проекта для бекапа (переопределяется через BACKUP_SOURCE_PATH, по умолчанию: текущая директория)
|
||
- ${BACKUP_SOURCE_PATH:-.}:/backup-source:ro
|
||
|
||
# Синхронизация времени с хостом
|
||
- /etc/timezone:/etc/timezone:ro
|
||
- /etc/localtime:/etc/localtime:ro
|
||
|
||
# Docker socket для управления контейнерами (нужен для BACKUP_STOP_SERVICES)
|
||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||
|
||
# Раскомментируйте если нужно подключить к сети других сервисов
|
||
#networks:
|
||
# gitea_network:
|
||
# name: gitea_network
|