-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
126 lines (119 loc) · 3.03 KB
/
Copy pathdocker-compose.yml
File metadata and controls
126 lines (119 loc) · 3.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
version: "3.8"
services:
# --- etcd: metadata storage for Milvus ---
etcd:
image: quay.io/coreos/etcd:v3.5.16
container_name: milvus-etcd
environment:
ETCD_AUTO_COMPACTION_MODE: revision
ETCD_AUTO_COMPACTION_RETENTION: "1000"
ETCD_QUOTA_BACKEND_BYTES: "4294967296" # 4 GB
ETCD_SNAPSHOT_COUNT: "50000"
volumes:
- etcd_data:/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:
test: ["CMD", "etcdctl", "endpoint", "health"]
interval: 30s
timeout: 20s
retries: 3
restart: unless-stopped
# --- MinIO: object storage for Milvus ---
minio:
image: minio/minio:RELEASE.2024-09-22T00-33-43Z
container_name: milvus-minio
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
volumes:
- minio_data:/minio_data
command: minio server /minio_data --console-address ":9001"
ports:
- "9000:9000"
- "9001:9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
restart: unless-stopped
# --- Milvus Standalone ---
milvus:
image: milvusdb/milvus:v2.4.17
container_name: milvus-standalone
command: ["milvus", "run", "standalone"]
security_opt:
- seccomp:unconfined
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
volumes:
- milvus_data:/var/lib/milvus
ports:
- "19530:19530" # gRPC
- "9091:9091" # metrics
depends_on:
etcd:
condition: service_healthy
minio:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
interval: 30s
timeout: 20s
retries: 3
restart: unless-stopped
# --- Redis: short-term memory for ReAct engine ---
redis:
image: redis:7-alpine
container_name: react-redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
restart: unless-stopped
# --- MCP Tool Server ---
mcp-server:
build:
context: .
dockerfile: Dockerfile.mcp
container_name: mcp-server
ports:
- "8002:8002"
environment:
- MILVUS_HOST=milvus-standalone
- REDIS_HOST=redis
- OPENAI_BASE_URL=${OPENAI_BASE_URL}
- OPENAI_API_KEY=${OPENAI_API_KEY}
depends_on:
milvus:
condition: service_healthy
redis:
condition: service_started
restart: unless-stopped
# --- Agent API Server ---
api-server:
build:
context: .
dockerfile: Dockerfile.api
container_name: api-server
ports:
- "8003:8003"
environment:
- MCP_URL=http://mcp-server:8002
- REDIS_HOST=redis
- OPENAI_BASE_URL=${OPENAI_BASE_URL}
- OPENAI_API_KEY=${OPENAI_API_KEY}
depends_on:
- mcp-server
- redis
restart: unless-stopped
volumes:
etcd_data:
minio_data:
milvus_data:
redis_data: