6.1 KiB
6.1 KiB
时序
默认:MCP 全链路(业务部署)
用户 Agent company-deploy-mcp Gitea Dokploy
│ │ │ │ │
│ 部署/上线 │ │ │ │
│─────────────────►│ │ │ │
│ │ whoami / get_my_quota │ │ │
│ │────────────────────────►│ │ │
│ │ Dockerfile + 本地校验 │ │ │
│ │ ensure_repository │ │ │
│ │────────────────────────►│──建库(可选)─────►│ │
│ │◄────────────────────────│◄─────────────────│ │
│ │ git push(企业凭据) │ │ │
│ │───────────────────────────────────────────►│ │
│ │ create_deployment_plan │ │ │
│ │────────────────────────►│ │ │
│ │ apply_deployment_plan │ │ │
│ │────────────────────────►│ │ │
│ │ │ ensure app │ │
│ │ │ mounts (/data+) │ │
│ │ │ postgres/mysql? │ │
│ │ │ domain buxi+5+LE │ │
│ │ │ deploy ──────────┼──────────────►│
│ │ │ │ clone/build │
│ │ get_deployment_status │ │ run │
│ │────────────────────────►│──status──────────┼──────────────►│
│ │ 探活 https://buxi…. │ │ │
│ 交付 HTTPS 链接 │ │ │ │
│◄─────────────────│ │ │ │
要点:
- 建库 / 挂卷 / PG·MySQL / 域名 / deploy 全在 MCP
apply内 - push 只在 Agent 本机
- 业务用户不接触 Gitea / Dokploy / Token
参数与示例:mcp-deploy.md。域名与证书:domain.md。
日常二次发布(MCP)
用户 → Agent → git push → create_deployment_plan(新 SHA)
→ apply_deployment_plan
→ 复用 mapping(域名、卷、库、配额名额)
→ 轮询 + 探活
- 同一
repo+environment:不新建 Dokploy 应用名额 - 域名 host 不变
- 数据卷 不变(应用须写在挂载路径)
- plan 一次性;每次发布新建 plan
Legacy:直连 Dokploy(运维例外)
用户 Agent Gitea Dokploy
│ │ │ │
│ 明确要求直连 │ │ │
│───────────────────►│ source .env.deploy │ │
│ │ Dockerfile │ │
│ │ 建仓+git push │ │
│ │────────────────────►│ │
│ │ application.* │ │
│ │ mounts / domain │ │
│ │ application.deploy │ │
│ │──────────────────────────────────────────►│
│ │ 轮询 + 探活 │ │
│◄───────────────────│ │ │
仅当 MCP 不可用且有 .env.deploy + DEPLOY_AUTHORIZED=true。
默认对话 不要 走这条。
责任边界
| 角色 | MCP 路径 | Legacy 路径 |
|---|---|---|
| 用户 | 飞书登录拿 buxi_;说「部署」 |
提供/保管 .env.deploy(运维) |
| Agent | 工程 + push + 调 MCP 工具 + 交付 URL | 工程 + push + 直调 Dokploy API |
| company-deploy-mcp | 身份/配额/审计/Gitea 建库/Dokploy 编排 | — |
| Gitea | 源码 | 源码 |
| Dokploy | 构建运行/卷/库/Traefik+LE | 同左(Agent 直调) |
异步语义
| 动作 | 含义 |
|---|---|
apply_deployment_plan 返回 200 |
已受理编排与 deploy 请求 |
deploymentRequested: true |
不等于用户已可稳定访问 |
| 上线完成 | Dokploy 部署终态成功 +(Web)HTTPS 探活通过 |
构建失败:get_deployment_status / get_sanitized_logs,修代码或 Dockerfile 后新 SHA 再 plan+apply。