version: '3.8' services: minio: image: minio/minio:latest container_name: m5_minio hostname: minio networks: - m5_network ports: - "9000:9000" # API - "9001:9001" # Console environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin123} MINIO_SITE_NAME: "M5 Digital MinIO" MINIO_SITE_REGION: "us-east-1" volumes: - ./minio/data:/data - ./minio/config:/root/.minio command: server /data --console-address ":9001" healthcheck: test: ["CMD", "mc", "ready", "local"] interval: 30s timeout: 20s retries: 3 restart: unless-stopped minio-init: image: minio/mc:latest container_name: m5_minio_init networks: - m5_network depends_on: minio: condition: service_healthy entrypoint: > /bin/sh -c " sleep 5; mc alias set myminio http://minio:9000 $${MINIO_ROOT_USER} $${MINIO_ROOT_PASSWORD}; mc anonymous set download myminio/public; mc admin user add myminio ${MINIO_SERVICE_USER:-crmuser} ${MINIO_SERVICE_PASSWORD:-crmpass123}; mc admin policy attach myminio readwrite --user ${MINIO_SERVICE_USER:-crmuser}; mc mb myminio/hermes-crm --ignore-existing; mc mb myminio/hermes-crm/avatars --ignore-existing; mc mb myminio/hermes-crm/documents --ignore-existing; mc mb myminio/hermes-crm/attachments --ignore-existing; mc mb myminio/hermes-crm/backups --ignore-existing; mc mb myminio/hermes-crm/exports --ignore-existing; mc mb myminio/hermes-crm/temp --ignore-existing; mc mb myminio/hermes-ecom --ignore-existing; mc mb myminio/hermes-ecom/products --ignore-existing; mc mb myminio/hermes-ecom/images --ignore-existing; mc mb myminio/hermes-ecom/documents --ignore-existing; echo 'MinIO initialized successfully'; exit 0; " networks: m5_network: name: scripts_m5_network external: true