diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..dc178e0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,63 @@ +version: '3.7' + +# Settings and configurations that are common for all containers +x-minio-common: &minio-common + image: quay.io/minio/minio:RELEASE.2023-02-27T18-10-45Z + command: server --console-address ":9001" http://minio{1...4}/data{1...2} + expose: + - "9000" + - "9001" + environment: + MINIO_ROOT_USER: franv + MINIO_ROOT_PASSWORD: fraal111 + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] + interval: 30s + timeout: 20s + retries: 3 + +# starts 4 docker containers running minio server instances. +# using nginx reverse proxy, load balancing, you can access +# it through port 9000. +services: + minio1: + <<: *minio-common + hostname: minio1 + volumes: + - ./data1-1:/data1 + - ./data1-2:/data2 + + minio2: + <<: *minio-common + hostname: minio2 + volumes: + - ./data2-1:/data1 + - ./data2-2:/data2 + + minio3: + <<: *minio-common + hostname: minio3 + volumes: + - ./data3-1:/data1 + - ./data3-2:/data2 + + minio4: + <<: *minio-common + hostname: minio4 + volumes: + - ./data4-1:/data1 + - ./data4-2:/data2 + + nginx: + image: nginx:1.19.2-alpine + hostname: nginx + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + ports: + - "9000:9000" + - "9001:9001" + depends_on: + - minio1 + - minio2 + - minio3 + - minio4