-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
92 lines (87 loc) · 2.52 KB
/
docker-compose.yml
File metadata and controls
92 lines (87 loc) · 2.52 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
services:
# ============================================================================
# DSPy API Service
# ============================================================================
api:
build:
context: .
dockerfile: Dockerfile
ports:
- "8000:8000"
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- STUDENT_MODEL=gpt-5-mini
- QDRANT_HOST=qdrant
- QDRANT_PORT=6333
- ENVIRONMENT=development
volumes:
# Mount artifacts for hot-reloading of compiled programs
- ./artifacts:/app/artifacts:ro
# Mount source code for development (comment out in production)
- ./src:/app/src:ro
- ./config:/app/config:ro
depends_on:
- qdrant
networks:
- dspy-network
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
# ============================================================================
# Qdrant Vector Database
# ============================================================================
qdrant:
image: qdrant/qdrant:latest
ports:
- "6333:6333" # REST API
- "6334:6334" # gRPC API
volumes:
- qdrant_storage:/qdrant/storage
networks:
- dspy-network
restart: unless-stopped
environment:
- QDRANT__SERVICE__GRPC_PORT=6334
# ============================================================================
# Phoenix Observability (Optional)
# ============================================================================
phoenix:
image: arizephoenix/phoenix:latest
ports:
- "6006:6006" # Phoenix UI
networks:
- dspy-network
restart: unless-stopped
profiles:
- observability
# ============================================================================
# Jupyter Notebook for Development (Optional)
# ============================================================================
jupyter:
build:
context: .
dockerfile: Dockerfile
command: jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root
ports:
- "8888:8888"
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- JUPYTER_ENABLE_LAB=yes
volumes:
- ./:/app
- ./notebooks:/app/notebooks
networks:
- dspy-network
profiles:
- development
volumes:
qdrant_storage:
driver: local
networks:
dspy-network:
driver: bridge