-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
104 lines (99 loc) · 2.48 KB
/
docker-compose.yml
File metadata and controls
104 lines (99 loc) · 2.48 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
services:
# Longbow Vector Database
longbow:
image: ghcr.io/23skdu/longbow:latest
container_name: mcp-memory-longbow
ports:
- "3000:3000" # Data server (Arrow Flight)
- "3001:3001" # Meta server
- "9090:9090" # Prometheus metrics
environment:
- LISTEN_ADDR=0.0.0.0:3000
- META_ADDR=0.0.0.0:3001
- METRICS_ADDR=0.0.0.0:9090
- LOG_LEVEL=info
- LOG_FORMAT=json
- STORAGE_PATH=/data
- WAL_ENABLED=true
- SNAPSHOT_ENABLED=true
volumes:
- longbow_data:/data
networks:
- mcp-network
# Note: Longbow uses distroless image, no shell/wget available
# Server logs "Listening for Data gRPC connections" when ready
# MCP Memory Server
server:
build:
context: ./server
dockerfile: Dockerfile.server
container_name: mcp-memory-server
ports:
- "8000:8000"
environment:
- PYTHONUNBUFFERED=1
- LONGBOW_DATA_URI=grpc://longbow:3000
- LONGBOW_META_URI=grpc://longbow:3001
- MEMORY_SIDECAR_PATH=/app/data/memory_sidecar.json
volumes:
- sidecar_data:/app/data
depends_on:
- longbow
# Wait for Longbow to be ready before connecting
restart: on-failure
networks:
- mcp-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
# MCP SSE Server (for Agent Zero and other SSE clients)
mcp-sse:
build:
context: ./server
dockerfile: Dockerfile.server
container_name: mcp-memory-sse
command: python mcp_server_sse.py
ports:
- "8765:8765"
environment:
- PYTHONUNBUFFERED=1
- LONGBOW_DATA_URI=grpc://longbow:3000
- LONGBOW_META_URI=grpc://longbow:3001
- MCP_SSE_PORT=8765
- MEMORY_SIDECAR_PATH=/app/data/memory_sidecar.json
volumes:
- sidecar_data:/app/data
depends_on:
- longbow
restart: on-failure
networks:
- mcp-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8765/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
# Dashboard UI
ui:
build:
context: ./ui
dockerfile: Dockerfile.ui
container_name: mcp-memory-ui
ports:
- "3080:80"
depends_on:
- server
networks:
- mcp-network
networks:
mcp-network:
driver: bridge
volumes:
longbow_data:
driver: local
sidecar_data:
driver: local