services:
  mongo:
    image: mongo:8.0
    container_name: mongo
    restart: always
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example
  etcd:
    image: quay.io/coreos/etcd:v3.5.5
    container_name: etcd
    restart: always
    command: >
      /usr/local/bin/etcd
      --data-dir=/etcd-data
      --name=etcd
      --listen-client-urls=http://0.0.0.0:2379
      --advertise-client-urls=http://etcd:2379
    ports:
      - "2379:2379"
      - "2380:2380"
  redis:
    image: redis:7.0
    container_name: redis
    restart: always
    ports:
      - "6379:6379"

  minio:
    image: minio/minio
    container_name: minio
    ports:
      - "9000:9000" # MinIO S3 API port
      - "9001:9001" # MinIO Console port
    environment:
      MINIO_ROOT_USER: minioadmin # Replace with your desired root username
      MINIO_ROOT_PASSWORD: minioadmin # Replace with your desired root password
      # MINIO_DEFAULT_BUCKETS: mybucket # Optional: Create a default bucket on startup
    command: server /data --console-address ":9001" # Start MinIO server and specify console address
