services: postgres: image: postgres:16.8-alpine container_name: ops-postgres restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-ops} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-ops_dev_only} POSTGRES_DB: ${POSTGRES_DB:-enterprise_ops} ports: - "${POSTGRES_PORT:-5432}:5432" volumes: - ops_pg_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-ops} -d ${POSTGRES_DB:-enterprise_ops}"] interval: 5s timeout: 5s retries: 10 redis: image: redis:7.4-alpine container_name: ops-redis restart: unless-stopped command: ["redis-server", "--appendonly", "yes"] ports: - "${REDIS_PORT:-6379}:6379" volumes: - ops_redis_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 10 minio: image: minio/minio:RELEASE.2025-04-22T22-12-26Z container_name: ops-minio restart: unless-stopped command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: ${MINIO_ACCESS_KEY:-opsadmin} MINIO_ROOT_PASSWORD: ${MINIO_SECRET_KEY:-opsadmin_dev_only} ports: - "${MINIO_API_PORT:-9000}:9000" - "${MINIO_CONSOLE_PORT:-9001}:9001" volumes: - ops_minio_data:/data healthcheck: test: ["CMD", "mc", "ready", "local"] interval: 10s timeout: 5s retries: 10 start_period: 10s volumes: ops_pg_data: ops_redis_data: ops_minio_data: