💻 源码
version: "3.5"

services:
  etcd:
    container_name: milvus-etcd
    image: quay.io/coreos/etcd:v3.5.5
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
      - ETCD_SNAPSHOT_COUNT=50000
    volumes:
      - ./etcd_data:/etcd
    ports:
      - "2379:2379"
    command:
      - etcd
      - --data-dir=/etcd
      - --listen-client-urls=http://0.0.0.0:2379
      - --advertise-client-urls=http://milvus-etcd:2379

  minio:
    container_name: milvus-minio
    image: minio/minio:RELEASE.2023-01-12T02-06-16Z
    environment:
      - MINIO_ACCESS_KEY=minioadmin
      - MINIO_SECRET_KEY=minioadmin
    command: server /data --console-address ":9001"
    volumes:
      - ./minio_data:/data
    ports:
      - "9000:9000"
      - "9001:9001"

  milvus:
    image: milvusdb/milvus:v2.4.10
    container_name: milvus_standalone
    depends_on:
      - etcd
      - minio
    ports:
      - "19530:19530"
      - "9091:9091"
    volumes:
      - ./milvus_data:/var/lib/milvus
    environment:
      - ETCD_ENDPOINTS=milvus-etcd:2379
      - MINIO_ADDRESS=milvus-minio:9000
      - MINIO_ACCESS_KEY=minioadmin
      - MINIO_SECRET_KEY=minioadmin
      - ETCD_AUTO_COMPACTION_RETENTION=0
      - MILVUS_LOG_LEVEL=info
    command: ["milvus", "run", "standalone"]
    restart: unless-stopped

  redis:
    image: redis:7.2
    container_name: redis
    ports:
      - "6379:6379"
    volumes:
      - ./redis_data:/data
    command: redis-server --appendonly yes
    restart: unless-stopped

  mysql:
    image: mysql:8.0.43
    container_name: mysql8
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: subjects_kg
      MYSQL_USER: admin
      MYSQL_PASSWORD: 123456
    ports:
      - "3306:3306"
    command:  --local-infile=1
    volumes:
      - ./init:/docker-entrypoint-initdb.d
      - ./mysql_data:/var/lib/mysql

volumes:
  milvus_data:
  redis_data:
  etcd_data:
  minio_data:
  mysql_data: