version: "3.9" services: mongodb: image: mongo:7 container_name: asf-mongodb restart: unless-stopped ports: - "27017:27017" environment: MONGO_INITDB_ROOT_USERNAME: ${MONGO_ROOT_USER:-asfadmin} MONGO_INITDB_ROOT_PASSWORD: ${MONGO_ROOT_PASSWORD:-asfadmin123} MONGO_INITDB_DATABASE: ${MONGO_DB:-asf} volumes: - asf-mongodb-data:/data/db healthcheck: test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"] interval: 10s timeout: 5s retries: 5 rabbitmq: image: rabbitmq:3.13-management container_name: asf-rabbitmq restart: unless-stopped ports: - "5672:5672" - "15672:15672" environment: RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER:-asf} RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD:-asf123} volumes: - asf-rabbitmq-data:/var/lib/rabbitmq healthcheck: test: ["CMD", "rabbitmq-diagnostics", "-q", "ping"] interval: 15s timeout: 10s retries: 5 redis: image: redis:7-alpine container_name: asf-redis restart: unless-stopped ports: - "6379:6379" command: ["redis-server", "--requirepass", "${REDIS_PASSWORD:-asfredis123}"] volumes: - asf-redis-data:/data healthcheck: test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD:-asfredis123}", "ping"] interval: 10s timeout: 5s retries: 5 minio: image: minio/minio:latest container_name: asf-minio restart: unless-stopped ports: - "9000:9000" - "9001:9001" environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER:-asfadmin} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-asfadmin123} command: server /data --console-address ":9001" volumes: - asf-minio-data:/data healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 15s timeout: 10s retries: 5 volumes: asf-mongodb-data: asf-rabbitmq-data: asf-redis-data: asf-minio-data: