version: '3.7' # starts 4 docker containers running minio server instances. # using nginx reverse proxy, load balancing, you can access # it through port 9000. services: minio1: image: minio/minio:latest volumes: - ./data1-1:/data1 - ./data1-2:/data2 expose: - "9000" environment: MINIO_ROOT_USER: manifestationresolue MINIO_ROOT_PASSWORD: sT6kSZibTBFfaoDiUgQfAEbBLv command: server http://minio{1...4}/data{1...2} healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 minio2: image: minio/minio:latest volumes: - ./data2-1:/data1 - ./data2-2:/data2 expose: - "9000" environment: MINIO_ROOT_USER: manifestationresolue MINIO_ROOT_PASSWORD: sT6kSZibTBFfaoDiUgQfAEbBLv command: server http://minio{1...4}/data{1...2} healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 minio3: image: minio/minio:latest volumes: - ./data3-1:/data1 - ./data3-2:/data2 expose: - "9000" environment: MINIO_ROOT_USER: manifestationresolue MINIO_ROOT_PASSWORD: sT6kSZibTBFfaoDiUgQfAEbBLv command: server http://minio{1...4}/data{1...2} healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 minio4: image: minio/minio:latest volumes: - ./data4-1:/data1 - ./data4-2:/data2 expose: - "9000" environment: MINIO_ROOT_USER: manifestationresolue MINIO_ROOT_PASSWORD: sT6kSZibTBFfaoDiUgQfAEbBLv command: server http://minio{1...4}/data{1...2} healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 nginx: image: nginx:1.19.2-alpine volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro ports: - "9000:9000" depends_on: - minio1 - minio2 - minio3 - minio4 ## By default this config uses default local driver, ## For custom volumes replace with volume driver configuration. #volumes: # data1-1: # data1-2: # data2-1: # data2-2: # data3-1: # data3-2: # data4-1: # data4-2: