docker-compose.yml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465
  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. ports:
  115. - "8007:8007"
  116. volumes:
  117. - agent_service_data:/data
  118. depends_on:
  119. model-gateway-service:
  120. condition: service_started
  121. memory-service:
  122. condition: service_started
  123. tool-service:
  124. condition: service_started
  125. skill-service:
  126. condition: service_started
  127. healthcheck:
  128. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8007/agents/health').read()"]
  129. interval: 15s
  130. timeout: 5s
  131. retries: 5
  132. agent-worker:
  133. build:
  134. context: ../..
  135. dockerfile: deployments/docker/python-service.Dockerfile
  136. args:
  137. SERVICE_PATH: services/agent-service
  138. command: ["python", "-m", "app.worker"]
  139. environment:
  140. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/agent_service.db
  141. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  142. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  143. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  144. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  145. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  146. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  147. AGENT_PLATFORM_WORKER_DRY_RUN: ${AGENT_PLATFORM_AGENT_WORKER_DRY_RUN:-false}
  148. volumes:
  149. - agent_service_data:/data
  150. depends_on:
  151. model-gateway-service:
  152. condition: service_started
  153. memory-service:
  154. condition: service_started
  155. tool-service:
  156. condition: service_started
  157. skill-service:
  158. condition: service_started
  159. memory-service:
  160. build:
  161. context: ../..
  162. dockerfile: deployments/docker/python-service.Dockerfile
  163. args:
  164. SERVICE_PATH: services/memory-service
  165. container_name: agent-platform-memory-service
  166. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8008"]
  167. environment:
  168. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/memory_service.db
  169. ports:
  170. - "8008:8008"
  171. volumes:
  172. - memory_service_data:/data
  173. healthcheck:
  174. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8008/memories/health').read()"]
  175. interval: 15s
  176. timeout: 5s
  177. retries: 5
  178. team-service:
  179. build:
  180. context: ../..
  181. dockerfile: deployments/docker/python-service.Dockerfile
  182. args:
  183. SERVICE_PATH: services/team-service
  184. container_name: agent-platform-team-service
  185. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8009"]
  186. environment:
  187. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/team_service.db
  188. ports:
  189. - "8009:8009"
  190. volumes:
  191. - team_service_data:/data
  192. healthcheck:
  193. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8009/teams/health').read()"]
  194. interval: 15s
  195. timeout: 5s
  196. retries: 5
  197. team-worker:
  198. build:
  199. context: ../..
  200. dockerfile: deployments/docker/python-service.Dockerfile
  201. args:
  202. SERVICE_PATH: services/team-service
  203. command: ["python", "-m", "app.worker"]
  204. environment:
  205. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/team_service.db
  206. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  207. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  208. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  209. AGENT_PLATFORM_WORKER_DRY_RUN: ${AGENT_PLATFORM_TEAM_WORKER_DRY_RUN:-true}
  210. volumes:
  211. - team_service_data:/data
  212. depends_on:
  213. agent-service:
  214. condition: service_started
  215. skill-service:
  216. build:
  217. context: ../..
  218. dockerfile: deployments/docker/python-service.Dockerfile
  219. args:
  220. SERVICE_PATH: services/skill-service
  221. container_name: agent-platform-skill-service
  222. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8010"]
  223. environment:
  224. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/skill_service.db
  225. ports:
  226. - "8010:8010"
  227. volumes:
  228. - skill_service_data:/data
  229. healthcheck:
  230. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8010/skills/health').read()"]
  231. interval: 15s
  232. timeout: 5s
  233. retries: 5
  234. human-service:
  235. build:
  236. context: ../..
  237. dockerfile: deployments/docker/python-service.Dockerfile
  238. args:
  239. SERVICE_PATH: services/human-service
  240. container_name: agent-platform-human-service
  241. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8011"]
  242. environment:
  243. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/human_service.db
  244. ports:
  245. - "8011:8011"
  246. volumes:
  247. - human_service_data:/data
  248. healthcheck:
  249. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8011/human/health').read()"]
  250. interval: 15s
  251. timeout: 5s
  252. retries: 5
  253. knowledge-service:
  254. build:
  255. context: ../..
  256. dockerfile: deployments/docker/python-service.Dockerfile
  257. args:
  258. SERVICE_PATH: services/knowledge-service
  259. container_name: agent-platform-knowledge-service
  260. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8012"]
  261. environment:
  262. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/knowledge_service.db
  263. ports:
  264. - "8012:8012"
  265. volumes:
  266. - knowledge_service_data:/data
  267. healthcheck:
  268. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8012/knowledge/health').read()"]
  269. interval: 15s
  270. timeout: 5s
  271. retries: 5
  272. event-service:
  273. build:
  274. context: ../..
  275. dockerfile: deployments/docker/python-service.Dockerfile
  276. args:
  277. SERVICE_PATH: services/event-service
  278. container_name: agent-platform-event-service
  279. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8013"]
  280. environment:
  281. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/event_service.db
  282. ports:
  283. - "8013:8013"
  284. volumes:
  285. - event_service_data:/data
  286. healthcheck:
  287. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8013/events/health').read()"]
  288. interval: 15s
  289. timeout: 5s
  290. retries: 5
  291. runtime-service:
  292. build:
  293. context: ../..
  294. dockerfile: deployments/docker/python-service.Dockerfile
  295. args:
  296. SERVICE_PATH: services/runtime-service
  297. container_name: agent-platform-runtime-service
  298. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8003"]
  299. environment:
  300. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/runtime_service.db
  301. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  302. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  303. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  304. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  305. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  306. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  307. AGENT_PLATFORM_TEAM_SERVICE_URL: http://team-service:8009
  308. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  309. AGENT_PLATFORM_HUMAN_SERVICE_URL: http://human-service:8011
  310. AGENT_PLATFORM_KNOWLEDGE_SERVICE_URL: http://knowledge-service:8012
  311. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  312. ports:
  313. - "8003:8003"
  314. volumes:
  315. - runtime_service_data:/data
  316. depends_on:
  317. workflow-service:
  318. condition: service_started
  319. tool-service:
  320. condition: service_started
  321. model-gateway-service:
  322. condition: service_started
  323. code-runner-service:
  324. condition: service_started
  325. agent-service:
  326. condition: service_started
  327. memory-service:
  328. condition: service_started
  329. team-service:
  330. condition: service_started
  331. skill-service:
  332. condition: service_started
  333. human-service:
  334. condition: service_started
  335. knowledge-service:
  336. condition: service_started
  337. event-service:
  338. condition: service_started
  339. healthcheck:
  340. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8003/runtime/health').read()"]
  341. interval: 15s
  342. timeout: 5s
  343. retries: 5
  344. runtime-worker:
  345. build:
  346. context: ../..
  347. dockerfile: deployments/docker/python-service.Dockerfile
  348. args:
  349. SERVICE_PATH: services/runtime-service
  350. command: ["python", "-m", "app.worker"]
  351. environment:
  352. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/runtime_service.db
  353. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  354. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  355. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  356. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  357. AGENT_PLATFORM_KNOWLEDGE_SERVICE_URL: http://knowledge-service:8012
  358. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  359. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  360. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  361. volumes:
  362. - runtime_service_data:/data
  363. depends_on:
  364. workflow-service:
  365. condition: service_started
  366. tool-service:
  367. condition: service_started
  368. model-gateway-service:
  369. condition: service_started
  370. code-runner-service:
  371. condition: service_started
  372. knowledge-service:
  373. condition: service_started
  374. event-service:
  375. condition: service_started
  376. api-gateway:
  377. build:
  378. context: ../..
  379. dockerfile: deployments/docker/python-service.Dockerfile
  380. args:
  381. SERVICE_PATH: services/api-gateway
  382. container_name: agent-platform-api-gateway
  383. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
  384. environment:
  385. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/api_gateway.db
  386. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  387. AGENT_PLATFORM_SESSION_SERVICE_URL: http://session-service:8001
  388. AGENT_PLATFORM_RUNTIME_SERVICE_URL: http://runtime-service:8003
  389. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  390. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  391. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  392. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  393. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  394. AGENT_PLATFORM_TEAM_SERVICE_URL: http://team-service:8009
  395. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  396. AGENT_PLATFORM_HUMAN_SERVICE_URL: http://human-service:8011
  397. AGENT_PLATFORM_KNOWLEDGE_SERVICE_URL: http://knowledge-service:8012
  398. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  399. AGENT_PLATFORM_AUTH_REQUIRED: ${AGENT_PLATFORM_AUTH_REQUIRED:-false}
  400. ports:
  401. - "8000:8000"
  402. volumes:
  403. - api_gateway_data:/data
  404. depends_on:
  405. workflow-service:
  406. condition: service_started
  407. session-service:
  408. condition: service_started
  409. runtime-service:
  410. condition: service_started
  411. tool-service:
  412. condition: service_started
  413. model-gateway-service:
  414. condition: service_started
  415. code-runner-service:
  416. condition: service_started
  417. agent-service:
  418. condition: service_started
  419. memory-service:
  420. condition: service_started
  421. team-service:
  422. condition: service_started
  423. skill-service:
  424. condition: service_started
  425. human-service:
  426. condition: service_started
  427. knowledge-service:
  428. condition: service_started
  429. event-service:
  430. condition: service_started
  431. healthcheck:
  432. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health').read()"]
  433. interval: 15s
  434. timeout: 5s
  435. retries: 5
  436. volumes:
  437. api_gateway_data:
  438. agent_service_data:
  439. memory_service_data:
  440. team_service_data:
  441. skill_service_data:
  442. human_service_data:
  443. knowledge_service_data:
  444. event_service_data:
  445. workflow_service_data:
  446. session_service_data:
  447. runtime_service_data:
  448. tool_service_data: