Files
docker-s3-backup/docker-compose.yaml
S.Gromov fd2e00069b Обновлены скрипты резервного копирования для улучшения управления контейнерами
- Автоматическое определение project name из Docker labels
- Остановка и запуск контейнеров с использованием их ID вместо docker-compose
- Обновлены комментарии и документация для ясности использования
- Изменены примеры в env.example и README.md для соответствия новым изменениям
2025-10-23 22:12:18 +03:00

62 lines
3.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ===========================================
# 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 postgres
# Контейнер backup должен быть запущен из того же docker-compose.yaml что и целевые сервисы
- 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