118 lines
3.7 KiB
YAML
118 lines
3.7 KiB
YAML
# 指定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
|