version: '3.5' services: etcd: container_name: milvus-etcd image: quay.io/coreos/etcd:v3.5.0 environment: - ETCD_AUTO_COMPACTION_MODE=revision - ETCD_AUTO_COMPACTION_RETENTION=1000 - ETCD_QUOTA_BACKEND_BYTES=4294967296 - ETCD_SNAPSHOT_COUNT=50000 volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd pulsar: container_name: milvus-pulsar image: milvusdb/pulsar:v2.8.2-m1 volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/pulsar:/pulsar/data environment: # bin/apply-config-from-env.py script will modify the configuration file based on the environment variables # nettyMaxFrameSizeBytes must be calculated from maxMessageSize + 10240 (padding) - nettyMaxFrameSizeBytes=104867840 # this is 104857600 + 10240 (padding) - defaultRetentionTimeInMinutes=10080 - defaultRetentionSizeInMB=8192 # maxMessageSize is missing from standalone.conf, must use PULSAR_PREFIX_ to get it configured - PULSAR_PREFIX_maxMessageSize=104857600 - PULSAR_GC=-XX:+UseG1GC minio: container_name: milvus-minio image: minio/minio:RELEASE.2022-03-17T06-34-49Z ports: - "9000:9000" - "9001:9001" environment: MINIO_ACCESS_KEY: minioadmin MINIO_SECRET_KEY: minioadmin volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data command: minio server /minio_data --console-address ":9001" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 rootcoord: container_name: milvus-rootcoord image: milvusdb/milvus:v2.2.2 command: ["milvus", "run", "rootcoord"] environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 PULSAR_ADDRESS: pulsar://pulsar:6650 ROOT_COORD_ADDRESS: rootcoord:53100 depends_on: - "etcd" - "pulsar" - "minio" proxy: container_name: milvus-proxy image: milvusdb/milvus:v2.2.2 command: ["milvus", "run", "proxy"] environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 PULSAR_ADDRESS: pulsar://pulsar:6650 ports: - "19530:19530" - "9091:9091" querycoord: container_name: milvus-querycoord image: milvusdb/milvus:v2.2.2 command: ["milvus", "run", "querycoord"] environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 PULSAR_ADDRESS: pulsar://pulsar:6650 QUERY_COORD_ADDRESS: querycoord:19531 depends_on: - "etcd" - "pulsar" - "minio" querynode: container_name: milvus-querynode image: milvusdb/milvus:v2.2.2 command: ["milvus", "run", "querynode"] environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 PULSAR_ADDRESS: pulsar://pulsar:6650 depends_on: - "querycoord" indexcoord: container_name: milvus-indexcoord image: milvusdb/milvus:v2.2.2 command: ["milvus", "run", "indexcoord"] environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 PULSAR_ADDRESS: pulsar://pulsar:6650 INDEX_COORD_ADDRESS: indexcoord:31000 depends_on: - "etcd" - "pulsar" - "minio" indexnode: container_name: milvus-indexnode image: milvusdb/milvus:v2.2.2 command: ["milvus", "run", "indexnode"] environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 PULSAR_ADDRESS: pulsar://pulsar:6650 INDEX_COORD_ADDRESS: indexcoord:31000 depends_on: - "indexcoord" datacoord: container_name: milvus-datacoord image: milvusdb/milvus:v2.2.2 command: ["milvus", "run", "datacoord"] environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 PULSAR_ADDRESS: pulsar://pulsar:6650 DATA_COORD_ADDRESS: datacoord:13333 depends_on: - "etcd" - "pulsar" - "minio" datanode: container_name: milvus-datanode image: milvusdb/milvus:v2.2.2 command: ["milvus", "run", "datanode"] environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 PULSAR_ADDRESS: pulsar://pulsar:6650 depends_on: - "datacoord" # ---------------------------------------------------------------------------------------- # If you need multiple instances of a service, say DataNode, use the following script: # ---------------------------------------------------------------------------------------- # datanode-1: # container_name: milvus-datanode-1 # image: milvusdb/milvus:v2.2.2 # command: ["milvus", "run", "datanode"] # environment: # ETCD_ENDPOINTS: etcd:2379 # MINIO_ADDRESS: minio:9000 # PULSAR_ADDRESS: pulsar://pulsar:6650 # depends_on: # - "datacoord" # # datanode-2: # container_name: milvus-datanode-2 # image: milvusdb/milvus:v2.2.2 # command: ["milvus", "run", "datanode"] # environment: # ETCD_ENDPOINTS: etcd:2379 # MINIO_ADDRESS: minio:9000 # PULSAR_ADDRESS: pulsar://pulsar:6650 # depends_on: # - "datacoord" # # datanode-3: # container_name: milvus-datanode-3 # image: milvusdb/milvus:v2.2.2 # command: ["milvus", "run", "datanode"] # environment: # ETCD_ENDPOINTS: etcd:2379 # MINIO_ADDRESS: minio:9000 # PULSAR_ADDRESS: pulsar://pulsar:6650 # depends_on: # - "datacoord" networks: default: name: milvus