docker-compose.yml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530
  1. services:
  2. workflow-service:
  3. build:
  4. context: ../..
  5. dockerfile: deployments/docker/python-service.Dockerfile
  6. args:
  7. SERVICE_PATH: services/workflow-service
  8. container_name: agent-platform-workflow-service
  9. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8002"]
  10. environment:
  11. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/workflow_service.db
  12. ports:
  13. - "8002:8002"
  14. volumes:
  15. - workflow_service_data:/data
  16. healthcheck:
  17. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8002/workflows/health').read()"]
  18. interval: 15s
  19. timeout: 5s
  20. retries: 5
  21. session-service:
  22. build:
  23. context: ../..
  24. dockerfile: deployments/docker/python-service.Dockerfile
  25. args:
  26. SERVICE_PATH: services/session-service
  27. container_name: agent-platform-session-service
  28. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8001"]
  29. environment:
  30. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/session_service.db
  31. AGENT_PLATFORM_RUNTIME_SERVICE_URL: http://runtime-service:8003
  32. ports:
  33. - "8001:8001"
  34. volumes:
  35. - session_service_data:/data
  36. depends_on:
  37. runtime-service:
  38. condition: service_started
  39. healthcheck:
  40. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8001/sessions/health').read()"]
  41. interval: 15s
  42. timeout: 5s
  43. retries: 5
  44. tool-service:
  45. build:
  46. context: ../..
  47. dockerfile: deployments/docker/python-service.Dockerfile
  48. args:
  49. SERVICE_PATH: services/tool-service
  50. container_name: agent-platform-tool-service
  51. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8004"]
  52. environment:
  53. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/tool_service.db
  54. ports:
  55. - "8004:8004"
  56. volumes:
  57. - tool_service_data:/data
  58. healthcheck:
  59. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8004/tools/health').read()"]
  60. interval: 15s
  61. timeout: 5s
  62. retries: 5
  63. model-gateway-service:
  64. build:
  65. context: ../..
  66. dockerfile: deployments/docker/python-service.Dockerfile
  67. args:
  68. SERVICE_PATH: services/model-gateway-service
  69. container_name: agent-platform-model-gateway-service
  70. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8005"]
  71. environment:
  72. AGENT_PLATFORM_PROVIDER_BASE_URL: ${AGENT_PLATFORM_PROVIDER_BASE_URL:-http://host.docker.internal:11434/v1}
  73. AGENT_PLATFORM_PROVIDER_API_KEY: ${AGENT_PLATFORM_PROVIDER_API_KEY:-}
  74. AGENT_PLATFORM_DEFAULT_MODEL: ${AGENT_PLATFORM_DEFAULT_MODEL:-}
  75. ports:
  76. - "8005:8005"
  77. healthcheck:
  78. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8005/models/health').read()"]
  79. interval: 15s
  80. timeout: 5s
  81. retries: 5
  82. code-runner-service:
  83. build:
  84. context: ../..
  85. dockerfile: deployments/docker/python-service.Dockerfile
  86. args:
  87. SERVICE_PATH: services/code-runner-service
  88. container_name: agent-platform-code-runner-service
  89. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8006"]
  90. environment:
  91. AGENT_PLATFORM_PYTHON_BIN: python
  92. AGENT_PLATFORM_MAX_TIMEOUT_SECONDS: ${AGENT_PLATFORM_MAX_TIMEOUT_SECONDS:-30}
  93. ports:
  94. - "8006:8006"
  95. healthcheck:
  96. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8006/code/health').read()"]
  97. interval: 15s
  98. timeout: 5s
  99. retries: 5
  100. agent-service:
  101. build:
  102. context: ../..
  103. dockerfile: deployments/docker/python-service.Dockerfile
  104. args:
  105. SERVICE_PATH: services/agent-service
  106. container_name: agent-platform-agent-service
  107. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8007"]
  108. environment:
  109. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/agent_service.db
  110. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  111. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  112. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  113. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  114. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  115. ports:
  116. - "8007:8007"
  117. volumes:
  118. - agent_service_data:/data
  119. depends_on:
  120. model-gateway-service:
  121. condition: service_started
  122. memory-service:
  123. condition: service_started
  124. tool-service:
  125. condition: service_started
  126. skill-service:
  127. condition: service_started
  128. event-service:
  129. condition: service_started
  130. healthcheck:
  131. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8007/agents/health').read()"]
  132. interval: 15s
  133. timeout: 5s
  134. retries: 5
  135. agent-worker:
  136. build:
  137. context: ../..
  138. dockerfile: deployments/docker/python-service.Dockerfile
  139. args:
  140. SERVICE_PATH: services/agent-service
  141. command: ["python", "-m", "app.worker"]
  142. environment:
  143. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/agent_service.db
  144. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  145. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  146. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  147. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  148. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  149. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  150. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  151. AGENT_PLATFORM_WORKER_DRY_RUN: ${AGENT_PLATFORM_AGENT_WORKER_DRY_RUN:-false}
  152. volumes:
  153. - agent_service_data:/data
  154. depends_on:
  155. model-gateway-service:
  156. condition: service_started
  157. memory-service:
  158. condition: service_started
  159. tool-service:
  160. condition: service_started
  161. skill-service:
  162. condition: service_started
  163. event-service:
  164. condition: service_started
  165. memory-service:
  166. build:
  167. context: ../..
  168. dockerfile: deployments/docker/python-service.Dockerfile
  169. args:
  170. SERVICE_PATH: services/memory-service
  171. container_name: agent-platform-memory-service
  172. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8008"]
  173. environment:
  174. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/memory_service.db
  175. ports:
  176. - "8008:8008"
  177. volumes:
  178. - memory_service_data:/data
  179. healthcheck:
  180. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8008/memories/health').read()"]
  181. interval: 15s
  182. timeout: 5s
  183. retries: 5
  184. team-service:
  185. build:
  186. context: ../..
  187. dockerfile: deployments/docker/python-service.Dockerfile
  188. args:
  189. SERVICE_PATH: services/team-service
  190. container_name: agent-platform-team-service
  191. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8009"]
  192. environment:
  193. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/team_service.db
  194. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  195. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  196. ports:
  197. - "8009:8009"
  198. volumes:
  199. - team_service_data:/data
  200. healthcheck:
  201. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8009/teams/health').read()"]
  202. interval: 15s
  203. timeout: 5s
  204. retries: 5
  205. team-worker:
  206. build:
  207. context: ../..
  208. dockerfile: deployments/docker/python-service.Dockerfile
  209. args:
  210. SERVICE_PATH: services/team-service
  211. command: ["python", "-m", "app.worker"]
  212. environment:
  213. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/team_service.db
  214. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  215. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  216. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  217. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  218. AGENT_PLATFORM_WORKER_DRY_RUN: ${AGENT_PLATFORM_TEAM_WORKER_DRY_RUN:-true}
  219. volumes:
  220. - team_service_data:/data
  221. depends_on:
  222. agent-service:
  223. condition: service_started
  224. event-service:
  225. condition: service_started
  226. skill-service:
  227. build:
  228. context: ../..
  229. dockerfile: deployments/docker/python-service.Dockerfile
  230. args:
  231. SERVICE_PATH: services/skill-service
  232. container_name: agent-platform-skill-service
  233. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8010"]
  234. environment:
  235. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/skill_service.db
  236. ports:
  237. - "8010:8010"
  238. volumes:
  239. - skill_service_data:/data
  240. healthcheck:
  241. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8010/skills/health').read()"]
  242. interval: 15s
  243. timeout: 5s
  244. retries: 5
  245. human-service:
  246. build:
  247. context: ../..
  248. dockerfile: deployments/docker/python-service.Dockerfile
  249. args:
  250. SERVICE_PATH: services/human-service
  251. container_name: agent-platform-human-service
  252. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8011"]
  253. environment:
  254. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/human_service.db
  255. ports:
  256. - "8011:8011"
  257. volumes:
  258. - human_service_data:/data
  259. healthcheck:
  260. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8011/human/health').read()"]
  261. interval: 15s
  262. timeout: 5s
  263. retries: 5
  264. knowledge-service:
  265. build:
  266. context: ../..
  267. dockerfile: deployments/docker/python-service.Dockerfile
  268. args:
  269. SERVICE_PATH: services/knowledge-service
  270. container_name: agent-platform-knowledge-service
  271. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8012"]
  272. environment:
  273. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/knowledge_service.db
  274. ports:
  275. - "8012:8012"
  276. volumes:
  277. - knowledge_service_data:/data
  278. healthcheck:
  279. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8012/knowledge/health').read()"]
  280. interval: 15s
  281. timeout: 5s
  282. retries: 5
  283. event-service:
  284. build:
  285. context: ../..
  286. dockerfile: deployments/docker/python-service.Dockerfile
  287. args:
  288. SERVICE_PATH: services/event-service
  289. container_name: agent-platform-event-service
  290. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8013"]
  291. environment:
  292. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/event_service.db
  293. ports:
  294. - "8013:8013"
  295. volumes:
  296. - event_service_data:/data
  297. healthcheck:
  298. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8013/events/health').read()"]
  299. interval: 15s
  300. timeout: 5s
  301. retries: 5
  302. auth-service:
  303. build:
  304. context: ../..
  305. dockerfile: deployments/docker/python-service.Dockerfile
  306. args:
  307. SERVICE_PATH: services/auth-service
  308. container_name: agent-platform-auth-service
  309. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8014"]
  310. environment:
  311. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/auth_service.db
  312. ports:
  313. - "8014:8014"
  314. volumes:
  315. - auth_service_data:/data
  316. healthcheck:
  317. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8014/auth/health').read()"]
  318. interval: 15s
  319. timeout: 5s
  320. retries: 5
  321. scheduler-service:
  322. build:
  323. context: ../..
  324. dockerfile: deployments/docker/python-service.Dockerfile
  325. args:
  326. SERVICE_PATH: services/scheduler-service
  327. container_name: agent-platform-scheduler-service
  328. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8015"]
  329. environment:
  330. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/scheduler_service.db
  331. ports:
  332. - "8015:8015"
  333. volumes:
  334. - scheduler_service_data:/data
  335. healthcheck:
  336. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8015/scheduler/health').read()"]
  337. interval: 15s
  338. timeout: 5s
  339. retries: 5
  340. runtime-service:
  341. build:
  342. context: ../..
  343. dockerfile: deployments/docker/python-service.Dockerfile
  344. args:
  345. SERVICE_PATH: services/runtime-service
  346. container_name: agent-platform-runtime-service
  347. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8003"]
  348. environment:
  349. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/runtime_service.db
  350. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  351. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  352. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  353. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  354. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  355. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  356. AGENT_PLATFORM_TEAM_SERVICE_URL: http://team-service:8009
  357. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  358. AGENT_PLATFORM_HUMAN_SERVICE_URL: http://human-service:8011
  359. AGENT_PLATFORM_KNOWLEDGE_SERVICE_URL: http://knowledge-service:8012
  360. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  361. AGENT_PLATFORM_SCHEDULER_SERVICE_URL: http://scheduler-service:8015
  362. ports:
  363. - "8003:8003"
  364. volumes:
  365. - runtime_service_data:/data
  366. depends_on:
  367. workflow-service:
  368. condition: service_started
  369. tool-service:
  370. condition: service_started
  371. model-gateway-service:
  372. condition: service_started
  373. code-runner-service:
  374. condition: service_started
  375. agent-service:
  376. condition: service_started
  377. memory-service:
  378. condition: service_started
  379. team-service:
  380. condition: service_started
  381. skill-service:
  382. condition: service_started
  383. human-service:
  384. condition: service_started
  385. knowledge-service:
  386. condition: service_started
  387. event-service:
  388. condition: service_started
  389. scheduler-service:
  390. condition: service_started
  391. healthcheck:
  392. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8003/runtime/health').read()"]
  393. interval: 15s
  394. timeout: 5s
  395. retries: 5
  396. runtime-worker:
  397. build:
  398. context: ../..
  399. dockerfile: deployments/docker/python-service.Dockerfile
  400. args:
  401. SERVICE_PATH: services/runtime-service
  402. command: ["python", "-m", "app.worker"]
  403. environment:
  404. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/runtime_service.db
  405. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  406. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  407. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  408. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  409. AGENT_PLATFORM_KNOWLEDGE_SERVICE_URL: http://knowledge-service:8012
  410. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  411. AGENT_PLATFORM_SCHEDULER_SERVICE_URL: http://scheduler-service:8015
  412. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  413. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  414. volumes:
  415. - runtime_service_data:/data
  416. depends_on:
  417. workflow-service:
  418. condition: service_started
  419. tool-service:
  420. condition: service_started
  421. model-gateway-service:
  422. condition: service_started
  423. code-runner-service:
  424. condition: service_started
  425. knowledge-service:
  426. condition: service_started
  427. event-service:
  428. condition: service_started
  429. scheduler-service:
  430. condition: service_started
  431. api-gateway:
  432. build:
  433. context: ../..
  434. dockerfile: deployments/docker/python-service.Dockerfile
  435. args:
  436. SERVICE_PATH: services/api-gateway
  437. container_name: agent-platform-api-gateway
  438. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
  439. environment:
  440. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/api_gateway.db
  441. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  442. AGENT_PLATFORM_SESSION_SERVICE_URL: http://session-service:8001
  443. AGENT_PLATFORM_RUNTIME_SERVICE_URL: http://runtime-service:8003
  444. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  445. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  446. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  447. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  448. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  449. AGENT_PLATFORM_TEAM_SERVICE_URL: http://team-service:8009
  450. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  451. AGENT_PLATFORM_HUMAN_SERVICE_URL: http://human-service:8011
  452. AGENT_PLATFORM_KNOWLEDGE_SERVICE_URL: http://knowledge-service:8012
  453. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  454. AGENT_PLATFORM_AUTH_SERVICE_URL: http://auth-service:8014
  455. AGENT_PLATFORM_SCHEDULER_SERVICE_URL: http://scheduler-service:8015
  456. AGENT_PLATFORM_AUTH_REQUIRED: ${AGENT_PLATFORM_AUTH_REQUIRED:-false}
  457. ports:
  458. - "8000:8000"
  459. volumes:
  460. - api_gateway_data:/data
  461. depends_on:
  462. workflow-service:
  463. condition: service_started
  464. session-service:
  465. condition: service_started
  466. runtime-service:
  467. condition: service_started
  468. tool-service:
  469. condition: service_started
  470. model-gateway-service:
  471. condition: service_started
  472. code-runner-service:
  473. condition: service_started
  474. agent-service:
  475. condition: service_started
  476. memory-service:
  477. condition: service_started
  478. team-service:
  479. condition: service_started
  480. skill-service:
  481. condition: service_started
  482. human-service:
  483. condition: service_started
  484. knowledge-service:
  485. condition: service_started
  486. event-service:
  487. condition: service_started
  488. auth-service:
  489. condition: service_started
  490. scheduler-service:
  491. condition: service_started
  492. healthcheck:
  493. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health').read()"]
  494. interval: 15s
  495. timeout: 5s
  496. retries: 5
  497. volumes:
  498. api_gateway_data:
  499. agent_service_data:
  500. memory_service_data:
  501. team_service_data:
  502. skill_service_data:
  503. human_service_data:
  504. knowledge_service_data:
  505. event_service_data:
  506. auth_service_data:
  507. scheduler_service_data:
  508. workflow_service_data:
  509. session_service_data:
  510. runtime_service_data:
  511. tool_service_data: