docker-compose.yml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  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. ports:
  113. - "8007:8007"
  114. volumes:
  115. - agent_service_data:/data
  116. depends_on:
  117. model-gateway-service:
  118. condition: service_started
  119. memory-service:
  120. condition: service_started
  121. healthcheck:
  122. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8007/agents/health').read()"]
  123. interval: 15s
  124. timeout: 5s
  125. retries: 5
  126. agent-worker:
  127. build:
  128. context: ../..
  129. dockerfile: deployments/docker/python-service.Dockerfile
  130. args:
  131. SERVICE_PATH: services/agent-service
  132. command: ["python", "-m", "app.worker"]
  133. environment:
  134. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/agent_service.db
  135. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  136. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  137. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  138. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  139. AGENT_PLATFORM_WORKER_DRY_RUN: ${AGENT_PLATFORM_AGENT_WORKER_DRY_RUN:-false}
  140. volumes:
  141. - agent_service_data:/data
  142. depends_on:
  143. model-gateway-service:
  144. condition: service_started
  145. memory-service:
  146. condition: service_started
  147. memory-service:
  148. build:
  149. context: ../..
  150. dockerfile: deployments/docker/python-service.Dockerfile
  151. args:
  152. SERVICE_PATH: services/memory-service
  153. container_name: agent-platform-memory-service
  154. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8008"]
  155. environment:
  156. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/memory_service.db
  157. ports:
  158. - "8008:8008"
  159. volumes:
  160. - memory_service_data:/data
  161. healthcheck:
  162. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8008/memories/health').read()"]
  163. interval: 15s
  164. timeout: 5s
  165. retries: 5
  166. team-service:
  167. build:
  168. context: ../..
  169. dockerfile: deployments/docker/python-service.Dockerfile
  170. args:
  171. SERVICE_PATH: services/team-service
  172. container_name: agent-platform-team-service
  173. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8009"]
  174. environment:
  175. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/team_service.db
  176. ports:
  177. - "8009:8009"
  178. volumes:
  179. - team_service_data:/data
  180. healthcheck:
  181. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8009/teams/health').read()"]
  182. interval: 15s
  183. timeout: 5s
  184. retries: 5
  185. skill-service:
  186. build:
  187. context: ../..
  188. dockerfile: deployments/docker/python-service.Dockerfile
  189. args:
  190. SERVICE_PATH: services/skill-service
  191. container_name: agent-platform-skill-service
  192. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8010"]
  193. environment:
  194. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/skill_service.db
  195. ports:
  196. - "8010:8010"
  197. volumes:
  198. - skill_service_data:/data
  199. healthcheck:
  200. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8010/skills/health').read()"]
  201. interval: 15s
  202. timeout: 5s
  203. retries: 5
  204. runtime-service:
  205. build:
  206. context: ../..
  207. dockerfile: deployments/docker/python-service.Dockerfile
  208. args:
  209. SERVICE_PATH: services/runtime-service
  210. container_name: agent-platform-runtime-service
  211. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8003"]
  212. environment:
  213. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/runtime_service.db
  214. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  215. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  216. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  217. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  218. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  219. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  220. AGENT_PLATFORM_TEAM_SERVICE_URL: http://team-service:8009
  221. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  222. ports:
  223. - "8003:8003"
  224. volumes:
  225. - runtime_service_data:/data
  226. depends_on:
  227. workflow-service:
  228. condition: service_started
  229. tool-service:
  230. condition: service_started
  231. model-gateway-service:
  232. condition: service_started
  233. code-runner-service:
  234. condition: service_started
  235. agent-service:
  236. condition: service_started
  237. memory-service:
  238. condition: service_started
  239. team-service:
  240. condition: service_started
  241. skill-service:
  242. condition: service_started
  243. healthcheck:
  244. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8003/runtime/health').read()"]
  245. interval: 15s
  246. timeout: 5s
  247. retries: 5
  248. runtime-worker:
  249. build:
  250. context: ../..
  251. dockerfile: deployments/docker/python-service.Dockerfile
  252. args:
  253. SERVICE_PATH: services/runtime-service
  254. command: ["python", "-m", "app.worker"]
  255. environment:
  256. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/runtime_service.db
  257. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  258. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  259. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  260. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  261. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  262. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  263. volumes:
  264. - runtime_service_data:/data
  265. depends_on:
  266. workflow-service:
  267. condition: service_started
  268. tool-service:
  269. condition: service_started
  270. model-gateway-service:
  271. condition: service_started
  272. code-runner-service:
  273. condition: service_started
  274. api-gateway:
  275. build:
  276. context: ../..
  277. dockerfile: deployments/docker/python-service.Dockerfile
  278. args:
  279. SERVICE_PATH: services/api-gateway
  280. container_name: agent-platform-api-gateway
  281. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
  282. environment:
  283. AGENT_PLATFORM_DATABASE_URL: sqlite:////data/api_gateway.db
  284. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  285. AGENT_PLATFORM_SESSION_SERVICE_URL: http://session-service:8001
  286. AGENT_PLATFORM_RUNTIME_SERVICE_URL: http://runtime-service:8003
  287. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  288. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  289. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  290. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  291. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  292. AGENT_PLATFORM_TEAM_SERVICE_URL: http://team-service:8009
  293. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  294. AGENT_PLATFORM_AUTH_REQUIRED: ${AGENT_PLATFORM_AUTH_REQUIRED:-false}
  295. ports:
  296. - "8000:8000"
  297. volumes:
  298. - api_gateway_data:/data
  299. depends_on:
  300. workflow-service:
  301. condition: service_started
  302. session-service:
  303. condition: service_started
  304. runtime-service:
  305. condition: service_started
  306. tool-service:
  307. condition: service_started
  308. model-gateway-service:
  309. condition: service_started
  310. code-runner-service:
  311. condition: service_started
  312. agent-service:
  313. condition: service_started
  314. memory-service:
  315. condition: service_started
  316. team-service:
  317. condition: service_started
  318. skill-service:
  319. condition: service_started
  320. healthcheck:
  321. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health').read()"]
  322. interval: 15s
  323. timeout: 5s
  324. retries: 5
  325. volumes:
  326. api_gateway_data:
  327. agent_service_data:
  328. memory_service_data:
  329. team_service_data:
  330. skill_service_data:
  331. workflow_service_data:
  332. session_service_data:
  333. runtime_service_data:
  334. tool_service_data: