Skip to content

Commit d0212f2

Browse files
committed
fix(showcase): add dev volume mounts to docker-compose.local.yml
Bind-mount source directories into all 17 integration containers so code changes only need a container restart, not a full image rebuild.
1 parent 5abf040 commit d0212f2

1 file changed

Lines changed: 50 additions & 4 deletions

File tree

showcase/docker-compose.local.yml

Lines changed: 50 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
# Run the Railway-equivalent Docker image for every showcase package locally.
2-
# Prereq: run scripts/dev-local.sh which dereferences tools/ and shared-tools/ symlinks into each package build context first.
32
# Ports come from shared/local-ports.json; internal port is always 10000 (Railway convention).
43

54
x-integration-defaults: &integration-defaults
65
env_file: .env
76
environment:
87
- OPENAI_API_KEY=${OPENAI_API_KEY:-sk-mock}
98
- OPENAI_BASE_URL=http://aimock:4010/v1
9+
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-sk-mock-anthropic}
10+
- ANTHROPIC_BASE_URL=http://aimock:4010
11+
- GOOGLE_API_KEY=${GOOGLE_API_KEY:-fake-gemini-key}
12+
- GOOGLE_GEMINI_BASE_URL=http://aimock:4010
13+
- SPRING_AI_OPENAI_BASE_URL=http://aimock:4010
1014
- AIMOCK_URL=http://aimock:4010
15+
- GitHubToken=${GitHubToken:-gh-mock-local-dev}
1116
depends_on:
1217
aimock:
1318
condition: service_healthy
1419
restart: unless-stopped
1520
healthcheck:
16-
test: ["CMD", "curl", "-f", "http://localhost:10000/health"]
21+
test: ["CMD", "curl", "-f", "http://localhost:10000/api/health"]
1722
interval: 5s
1823
timeout: 3s
1924
retries: 5
@@ -75,7 +80,8 @@ services:
7580
profiles: ["infra", "all"]
7681
restart: unless-stopped
7782
healthcheck:
78-
test: ["CMD", "curl", "-f", "http://localhost:8090/api/health"]
83+
test:
84+
["CMD", "wget", "-q", "--spider", "http://localhost:8090/api/health"]
7985
interval: 5s
8086
timeout: 3s
8187
retries: 5
@@ -96,7 +102,13 @@ services:
96102
profiles: ["infra", "all"]
97103
restart: unless-stopped
98104
healthcheck:
99-
test: ["CMD", "curl", "-f", "http://localhost:10000/"]
105+
test:
106+
[
107+
"CMD",
108+
"node",
109+
"-e",
110+
"fetch('http://localhost:10000/').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))",
111+
]
100112
interval: 5s
101113
timeout: 3s
102114
retries: 5
@@ -110,6 +122,8 @@ services:
110122
ports:
111123
- "3100:10000"
112124
profiles: ["langgraph-python", "all"]
125+
volumes:
126+
- ./integrations/langgraph-python/src:/app/src
113127

114128
langgraph-typescript:
115129
<<: *integration-defaults
@@ -119,6 +133,8 @@ services:
119133
ports:
120134
- "3101:10000"
121135
profiles: ["langgraph-typescript", "all"]
136+
volumes:
137+
- ./integrations/langgraph-typescript/src:/app/src
122138

123139
langgraph-fastapi:
124140
<<: *integration-defaults
@@ -128,6 +144,8 @@ services:
128144
ports:
129145
- "3102:10000"
130146
profiles: ["langgraph-fastapi", "all"]
147+
volumes:
148+
- ./integrations/langgraph-fastapi/src:/app/src
131149

132150
google-adk:
133151
<<: *integration-defaults
@@ -137,6 +155,8 @@ services:
137155
ports:
138156
- "3103:10000"
139157
profiles: ["google-adk", "all"]
158+
volumes:
159+
- ./integrations/google-adk/src:/app/src
140160

141161
mastra:
142162
<<: *integration-defaults
@@ -146,6 +166,8 @@ services:
146166
ports:
147167
- "3104:10000"
148168
profiles: ["mastra", "all"]
169+
volumes:
170+
- ./integrations/mastra/src:/app/src
149171

150172
crewai-crews:
151173
<<: *integration-defaults
@@ -155,6 +177,8 @@ services:
155177
ports:
156178
- "3105:10000"
157179
profiles: ["crewai-crews", "all"]
180+
volumes:
181+
- ./integrations/crewai-crews/src:/app/src
158182

159183
pydantic-ai:
160184
<<: *integration-defaults
@@ -164,6 +188,8 @@ services:
164188
ports:
165189
- "3106:10000"
166190
profiles: ["pydantic-ai", "all"]
191+
volumes:
192+
- ./integrations/pydantic-ai/src:/app/src
167193

168194
claude-sdk-python:
169195
<<: *integration-defaults
@@ -173,6 +199,8 @@ services:
173199
ports:
174200
- "3107:10000"
175201
profiles: ["claude-sdk-python", "all"]
202+
volumes:
203+
- ./integrations/claude-sdk-python/src:/app/src
176204

177205
claude-sdk-typescript:
178206
<<: *integration-defaults
@@ -182,6 +210,8 @@ services:
182210
ports:
183211
- "3108:10000"
184212
profiles: ["claude-sdk-typescript", "all"]
213+
volumes:
214+
- ./integrations/claude-sdk-typescript/src:/app/src
185215

186216
agno:
187217
<<: *integration-defaults
@@ -191,6 +221,8 @@ services:
191221
ports:
192222
- "3109:10000"
193223
profiles: ["agno", "all"]
224+
volumes:
225+
- ./integrations/agno/src:/app/src
194226

195227
ag2:
196228
<<: *integration-defaults
@@ -200,6 +232,8 @@ services:
200232
ports:
201233
- "3110:10000"
202234
profiles: ["ag2", "all"]
235+
volumes:
236+
- ./integrations/ag2/src:/app/src
203237

204238
llamaindex:
205239
<<: *integration-defaults
@@ -209,6 +243,8 @@ services:
209243
ports:
210244
- "3111:10000"
211245
profiles: ["llamaindex", "all"]
246+
volumes:
247+
- ./integrations/llamaindex/src:/app/src
212248

213249
strands:
214250
<<: *integration-defaults
@@ -218,6 +254,8 @@ services:
218254
ports:
219255
- "3112:10000"
220256
profiles: ["strands", "all"]
257+
volumes:
258+
- ./integrations/strands/src:/app/src
221259

222260
langroid:
223261
<<: *integration-defaults
@@ -227,6 +265,8 @@ services:
227265
ports:
228266
- "3113:10000"
229267
profiles: ["langroid", "all"]
268+
volumes:
269+
- ./integrations/langroid/src:/app/src
230270

231271
ms-agent-python:
232272
<<: *integration-defaults
@@ -236,6 +276,8 @@ services:
236276
ports:
237277
- "3114:10000"
238278
profiles: ["ms-agent-python", "all"]
279+
volumes:
280+
- ./integrations/ms-agent-python/src:/app/src
239281

240282
ms-agent-dotnet:
241283
<<: *integration-defaults
@@ -245,6 +287,8 @@ services:
245287
ports:
246288
- "3115:10000"
247289
profiles: ["ms-agent-dotnet", "all"]
290+
volumes:
291+
- ./integrations/ms-agent-dotnet/src:/app/src
248292

249293
spring-ai:
250294
<<: *integration-defaults
@@ -254,6 +298,8 @@ services:
254298
ports:
255299
- "3116:10000"
256300
profiles: ["spring-ai", "all"]
301+
volumes:
302+
- ./integrations/spring-ai/src:/app/src
257303

258304
volumes:
259305
showcase-pb-data:

0 commit comments

Comments
 (0)