mirror of
https://github.com/ditkrg/db-backup-s3.git
synced 2026-01-22 13:56:47 +00:00
- Updated `backup.sh` to allow backing up multiple databases by introducing the `DATABASE_NAMES` environment variable. - Modified `env.sh` to handle the new `DATABASE_NAMES` variable and ensure compatibility with existing `DATABASE_NAME`. - Updated `docker-compose.yaml` and `README.md` to reflect changes and provide examples for backing up single and multiple databases. - Added a new binary file `umb_pm_dev.bacpac` for database backup. Signed-off-by: Shakar Bakr <5h4k4r.b4kr@gmail.com>
116 lines
3.2 KiB
YAML
116 lines
3.2 KiB
YAML
# this file is here to facilitate development/testing
|
|
# $ docker compose up -d --build --force-recreate
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:15-alpine
|
|
environment:
|
|
POSTGRES_USER: user
|
|
POSTGRES_PASSWORD: password
|
|
|
|
mysql:
|
|
image: mysql:8.0
|
|
environment:
|
|
MYSQL_USER: user
|
|
MYSQL_PASSWORD: password
|
|
MYSQL_DATABASE: database
|
|
MYSQL_ROOT_PASSWORD: root_password
|
|
|
|
mssql:
|
|
platform: linux/amd64
|
|
image: mcr.microsoft.com/mssql/server:2022-latest
|
|
environment:
|
|
ACCEPT_EULA: Y
|
|
MSSQL_SA_PASSWORD: YourStrong@Passw0rd
|
|
MSSQL_PID: Express
|
|
ports:
|
|
- "11433:1433" # Use port 11433 externally to avoid conflicts
|
|
volumes:
|
|
- mssql-data:/var/opt/mssql # Database storage and backup location (shared with backup container)
|
|
|
|
minio:
|
|
image: minio/minio:latest
|
|
command: server /data --console-address ":9001"
|
|
ports:
|
|
- 9000:9000
|
|
- 9001:9001
|
|
environment:
|
|
MINIO_ROOT_USER: miniouser
|
|
MINIO_ROOT_PASSWORD: minioroot
|
|
volumes:
|
|
- minio-data:/data
|
|
|
|
backup-postgres:
|
|
build:
|
|
context: .
|
|
args:
|
|
ALPINE_VERSION: "3.21"
|
|
environment:
|
|
# SCHEDULE: '@weekly' # optional
|
|
BACKUP_KEEP_DAYS: 7 # optional
|
|
PASSPHRASE: passphrase # optional
|
|
# S3_REGION:
|
|
S3_ENDPOINT: http://minio:9000
|
|
S3_ACCESS_KEY_ID: miniouser
|
|
S3_SECRET_ACCESS_KEY: minioroot
|
|
S3_BUCKET: backups
|
|
S3_PREFIX: postgres-backups
|
|
DATABASE_HOST: postgres
|
|
DATABASE_NAME: user
|
|
DATABASE_USER: user
|
|
DATABASE_PORT: 5432
|
|
DATABASE_SERVER: postgres
|
|
DATABASE_PASSWORD: password
|
|
|
|
backup-mysql:
|
|
build:
|
|
context: .
|
|
args:
|
|
ALPINE_VERSION: "3.21"
|
|
environment:
|
|
# SCHEDULE: '@weekly' # optional
|
|
BACKUP_KEEP_DAYS: 7 # optional
|
|
PASSPHRASE: passphrase # optional
|
|
# S3_REGION:
|
|
S3_ENDPOINT: http://minio:9000
|
|
S3_ACCESS_KEY_ID: miniouser
|
|
S3_SECRET_ACCESS_KEY: minioroot
|
|
S3_BUCKET: backups
|
|
S3_PREFIX: mysql-backups
|
|
DATABASE_HOST: mysql
|
|
DATABASE_NAME: database
|
|
DATABASE_USER: root
|
|
DATABASE_PORT: 3306
|
|
DATABASE_SERVER: mysql
|
|
DATABASE_PASSWORD: root_password
|
|
|
|
backup-mssql:
|
|
platform: linux/amd64
|
|
build:
|
|
context: .
|
|
args:
|
|
ALPINE_VERSION: "3.21"
|
|
volumes:
|
|
- mssql-data:/var/opt/mssql # Shared volume for native BACKUP DATABASE command
|
|
environment:
|
|
# SCHEDULE: '@weekly' # optional
|
|
BACKUP_KEEP_DAYS: 7 # optional
|
|
# PASSPHRASE: passphrase # optional - uncomment to enable GPG encryption
|
|
# S3_REGION:
|
|
S3_ENDPOINT: http://minio:9000
|
|
S3_ACCESS_KEY_ID: miniouser
|
|
S3_SECRET_ACCESS_KEY: minioroot
|
|
S3_BUCKET: backups
|
|
S3_PREFIX: mssql-backups
|
|
DATABASE_HOST: mssql
|
|
DATABASE_NAME: TestDB
|
|
# DATABASE_NAMES: "TestDB,AnotherDatabase" # Optional: back up multiple databases
|
|
DATABASE_USER: sa
|
|
DATABASE_PORT: 1433
|
|
DATABASE_SERVER: mssql
|
|
DATABASE_PASSWORD: YourStrong@Passw0rd
|
|
MSSQL_DATA_DIR: /var/opt/mssql/data # Path where MSSQL backups are stored (must match volume mount)
|
|
volumes:
|
|
mssql-data: # MSSQL database storage
|
|
minio-data: # MinIO object storage
|