# 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