version: '3.8'
services:
etcd:
container_name: milvus-etcd
image: bitnami/etcd
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_SNAPSHOT_COUNT=50000
- ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
- ETCD_ADVERTISE_CLIENT_URLS=http://127.0.0.1:2379
- ETCD_DATA_DIR=/etcd
- ALLOW_NONE_AUTHENTICATION=yes
volumes:
- etcd_data:/etcd
healthcheck:
test: ["CMD", "etcdctl", "endpoint", "health"]
interval: 30s
timeout: 20s
retries: 3
minio:
container_name: milvus-minio
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
ports:
- "9001:9001"
- "9000:9000"
volumes:
- minio_data:/data
command: minio server /data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
milvus:
container_name: milvus-standalone
image: milvusdb/milvus:v2.5.14
command: ["milvus", "run", "standalone"]
security_opt:
- seccomp:unconfined
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
# Optimized for fast indexing and large projects
SEGMENT_SIZE_MB: 1024 # Büyük segment = hızlı indexing
SEGMENT_SEAL_PROPORTION: 0.25 # Daha az seal = bulk insert optimize
QUERY_NODE_CACHE_SIZE_MB: 4096 # Büyük cache = hızlı indexing
INDEX_ENGINE_CACHE_SIZE_MB: 2048 # Index cache artırıldı
INSERT_BUFFER_SIZE_MB: 512 # Büyük buffer = batch processing
MAX_SEGMENT_NUM: 16 # Daha fazla paralel segment
INDEX_BUILD_WORKERS: 4 # Paralel index building
SEARCH_ENGINE_NUM_THREADS: 8 # Paralel search threads
deploy:
resources:
limits:
memory: 8G # Daha kontrollü memory
cpus: '4'
reservations:
memory: 3G
cpus: '2'
volumes:
- milvus_data:/var/lib/milvus
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
interval: 30s
start_period: 120s
timeout: 30s
retries: 5
ports:
- "19530:19530"
- "9091:9091"
depends_on:
etcd:
condition: service_healthy
minio:
condition: service_healthy
restart: unless-stopped
mcp-app:
build: .
container_name: mcp-app
platform: linux/amd64
ports:
- "3000:3000"
env_file:
- .env
environment:
- NODE_TLS_REJECT_UNAUTHORIZED=0
depends_on:
milvus:
condition: service_healthy
restart: unless-stopped
attu:
container_name: attu
image: zilliz/attu:v2.3.6
environment:
MILVUS_URL: milvus:19530
ports:
- "8000:3000"
depends_on:
- milvus
volumes:
etcd_data:
minio_data:
milvus_data: