# 指定Docker Compose文件格式版本为3.5 version: "3.5" # 定义服务组 services: # etcd服务配置,用于Milvus的元数据存储 etcd: # 容器名称设置为milvus-etcd container_name: milvus-etcd # 使用coreos的etcd镜像,版本为v3.5.5 image: quay.io/coreos/etcd:v3.5.5 # 设置etcd的环境变量 environment: # 设置自动压缩模式为revision - ETCD_AUTO_COMPACTION_MODE=revision # 设置自动压缩保留1000个版本 - ETCD_AUTO_COMPACTION_RETENTION=1000 # 设置后端存储配额为4GB - ETCD_QUOTA_BACKEND_BYTES=4294967296 # 设置快照计数为50000 - ETCD_SNAPSHOT_COUNT=50000 # 挂载卷,将本地目录映射到容器内的/etcd目录 volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/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 # 健康检查配置 healthcheck: # 使用etcdctl检查端点健康状态 test: ["CMD", "etcdctl", "endpoint", "health"] # 每30秒检查一次 interval: 30s # 超时时间为20秒 timeout: 20s # 重试3次 retries: 3 # MinIO服务配置,用于Milvus的对象存储 minio: # 容器名称设置为milvus-minio container_name: milvus-minio # 使用MinIO镜像,指定版本 image: minio/minio:RELEASE.2023-03-20T20-16-18Z # 设置MinIO的环境变量 environment: # 设置访问密钥 MINIO_ACCESS_KEY: minioadmin # 设置密钥 MINIO_SECRET_KEY: minioadmin # 端口映射,将容器的9001和9000端口映射到主机 ports: - "9001:9001" - "9000:9000" # 挂载卷,将本地目录映射到容器内的/minio_data目录 volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data # 启动命令,配置MinIO服务器和控制台地址 command: minio server /minio_data --console-address ":9001" # 健康检查配置 healthcheck: # 使用curl检查MinIO健康状态 test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] # 每30秒检查一次 interval: 30s # 超时时间为20秒 timeout: 20s # 重试3次 retries: 3 # Milvus独立服务配置 standalone: # 容器名称设置为milvus-standalone container_name: milvus-standalone # 使用Milvus镜像,版本为v2.4.15 image: milvusdb/milvus:v2.4.15 # 启动命令,以独立模式运行Milvus command: ["milvus", "run", "standalone"] # 安全选项配置 security_opt: # 禁用seccomp配置文件 - seccomp:unconfined # 设置Milvus的环境变量 environment: # 设置etcd端点地址 ETCD_ENDPOINTS: etcd:2379 # 设置MinIO地址 MINIO_ADDRESS: minio:9000 # 挂载卷,将本地目录映射到容器内的/var/lib/milvus目录 volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus # 健康检查配置 healthcheck: # 使用curl检查Milvus健康状态 test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"] # 每30秒检查一次 interval: 30s # 启动后等待90秒开始检查 start_period: 90s # 超时时间为20秒 timeout: 20s # 重试3次 retries: 3 # 端口映射,将容器的19530和9091端口映射到主机 ports: - "19530:19530" - "9091:9091" # 依赖关系,确保etcd和minio服务先启动 depends_on: - "etcd" - "minio" # 网络配置 networks: # 默认网络配置 default: # 网络名称设置为milvus name: milvus