-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
158 lines (149 loc) · 3.94 KB
/
docker-compose.yml
File metadata and controls
158 lines (149 loc) · 3.94 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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
version: '3.4'
x-healthcheck: &default-healthcheck
test: ["CMD", "python", "-c", "import requests, os; port = os.environ.get('PORT', 8080); requests.get(f'http://localhost:{port}/health', timeout=5)"]
interval: 30s
timeout: 10s
retries: 3
services:
# --- Core Agents ---
issue-detection-agent:
build:
context: .
dockerfile: Dockerfile
args:
SERVICE_PATH: agents/issue_detection
ports:
- "8080:8080"
environment:
- PORT=8080
- DEMO_MODE=true
- GOOGLE_CLOUD_PROJECT=${PROJECT_ID}
- GEMINI_API_KEY=${GEMINI_API_KEY}
- SERVICE_PATH=agents/issue_detection
volumes:
- .:/app
healthcheck: *default-healthcheck
priority-analysis-agent:
build:
context: .
dockerfile: Dockerfile
args:
SERVICE_PATH: agents/priority_analysis
ports:
- "8081:8081"
environment:
- PORT=8081
- GOOGLE_CLOUD_PROJECT=${PROJECT_ID}
- GEMINI_API_KEY=${GEMINI_API_KEY}
- SERVICE_PATH=agents/priority_analysis
volumes:
- .:/app
healthcheck: *default-healthcheck
resource-coordination-agent:
build:
context: .
dockerfile: Dockerfile
args:
SERVICE_PATH: agents/resource_coordination
ports:
- "8082:8082"
environment:
- PORT=8082
- GOOGLE_CLOUD_PROJECT=${PROJECT_ID}
- GEMINI_API_KEY=${GEMINI_API_KEY}
- FIRESTORE_EMULATOR_HOST=firestore-emulator:8087
- SERVICE_PATH=agents/resource_coordination
volumes:
- .:/app
depends_on:
- firestore-emulator
healthcheck: *default-healthcheck
platform-integration-agent:
build:
context: .
dockerfile: Dockerfile
args:
SERVICE_PATH: agents/platform_integration
ports:
- "8084:8084"
environment:
- PORT=8084
- GOOGLE_CLOUD_PROJECT=${PROJECT_ID}
- MCP_SERVER_URL=http://mcp-server:8083
- SERVICE_PATH=agents/platform_integration
volumes:
- .:/app
depends_on:
- mcp-server
healthcheck: *default-healthcheck
orchestrator-agent:
build:
context: .
dockerfile: Dockerfile
args:
SERVICE_PATH: agents/orchestrator
ports:
- "8085:8085"
environment:
- PORT=8085
- GOOGLE_CLOUD_PROJECT=${PROJECT_ID}
- GEMINI_API_KEY=${GEMINI_API_KEY}
- FIRESTORE_EMULATOR_HOST=firestore-emulator:8087
- ISSUE_DETECTION_URL=http://issue-detection-agent:8080
- PRIORITY_ANALYSIS_URL=http://priority-analysis-agent:8081
- RESOURCE_COORDINATION_URL=http://resource-coordination-agent:8082
- PLATFORM_INTEGRATION_URL=http://platform-integration-agent:8084
- MCP_SERVER_URL=http://mcp-server:8083
- SERVICE_PATH=agents/orchestrator
volumes:
- .:/app
depends_on:
- issue-detection-agent
- priority-analysis-agent
- resource-coordination-agent
- platform-integration-agent
# --- Supporting Services ---
firestore-emulator:
image: google/cloud-sdk:emulators
ports:
- "8087:8087"
environment:
- FIRESTORE_EMULATOR_HOST=localhost:8087
command: gcloud beta emulators firestore start --host-port=0.0.0.0:8087
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8087"]
interval: 10s
timeout: 5s
retries: 5
mcp-server:
build:
context: .
dockerfile: Dockerfile
args:
SERVICE_PATH: mcp_server
ports:
- "8083:8083"
environment:
- PORT=8083
- GOOGLE_CLOUD_PROJECT=${PROJECT_ID}
- SERVICE_PATH=mcp_server
- MCP_TRANSPORT=sse
volumes:
- .:/app
healthcheck: *default-healthcheck
webapp:
build:
context: .
dockerfile: Dockerfile
args:
SERVICE_PATH: webapp
ports:
- "3000:8080"
environment:
- PORT=8080
- ORCHESTRATOR_URL=http://orchestrator-agent:8085
- SERVICE_PATH=webapp
volumes:
- .:/app
depends_on:
- orchestrator-agent