version: '3.8' services: # Azurite - Azure Storage Emulator azurite: image: mcr.microsoft.com/azure-storage/azurite:latest container_name: dbbackup-azurite ports: - "10000:10000" # Blob service - "10001:10001" # Queue service - "10002:10002" # Table service volumes: - azurite_data:/data command: azurite --blobHost 0.0.0.0 --queueHost 0.0.0.0 --tableHost 0.0.0.0 --loose --skipApiVersionCheck healthcheck: test: ["CMD", "nc", "-z", "localhost", "10000"] interval: 5s timeout: 3s retries: 30 networks: - dbbackup-net # PostgreSQL 16 for testing postgres: image: postgres:16-alpine container_name: dbbackup-postgres-azure environment: POSTGRES_USER: testuser POSTGRES_PASSWORD: testpass POSTGRES_DB: testdb ports: - "5434:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U testuser -d testdb"] interval: 5s timeout: 3s retries: 10 networks: - dbbackup-net # MySQL 8.0 for testing mysql: image: mysql:8.0 container_name: dbbackup-mysql-azure environment: MYSQL_ROOT_PASSWORD: rootpass MYSQL_DATABASE: testdb MYSQL_USER: testuser MYSQL_PASSWORD: testpass ports: - "3308:3306" command: --default-authentication-plugin=mysql_native_password healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-prootpass"] interval: 5s timeout: 3s retries: 10 networks: - dbbackup-net volumes: azurite_data: networks: dbbackup-net: driver: bridge