docs: scope A — 妙搭 experimental, ordinary Dockerfile main path

Align skill with company-deploy-mcp: support matrix, no gateway/login
parity promise, boot-only self-host env note.
This commit is contained in:
Lon
2026-08-01 02:59:26 +08:00
parent 5ec0501ad6
commit 321d2e6165
2 changed files with 62 additions and 25 deletions

View File

@@ -32,13 +32,16 @@ Skill 只提供流程;真正部署还需配置 MCP `company-deploy``buxi_`
**默认路径company-deploy-mcp必须优先。**
直连 Dokploy API 为 **legacy / 运维例外**
**产品范围(收口):** 主路径是 **普通 Dockerfile 服务**Python / Node / 静态站等)。
飞书 **妙搭 / `@lark-apaas/*` 模板不是主路径**——不承诺登录、权限、平台 API 与线上一致;控制面仅可能注入 **进程启动** 所需最小 env。详见 `references/stack-profiles.md` 支持矩阵。
参考:
- `references/mcp-deploy.md`**MCP 默认状态机**(工具参数、域名/卷/库)
- `references/domain.md` — 域名与 HTTPSLets Encrypt无需通配符证书
- `references/sequence.md` — 时序
- `references/env-deploy.example` — 仅 legacy 直连用
- `references/stack-profiles.md` — Dockerfile 约定
- `references/stack-profiles.md` — Dockerfile 约定 + **支持矩阵**
线上连接中心:`https://company-deploy-mcp.loncode.site/`
MCP endpoint`https://company-deploy-mcp.loncode.site/mcp`
@@ -123,6 +126,11 @@ MCP endpoint`https://company-deploy-mcp.loncode.site/mcp`
- 识别栈;保证 Dockerfile`.gitignore` 排除密钥
- 有状态:默认 `/data`;多目录用 `persistence[]`
- 需要库:`databases: [{ engine: "postgres"|"mysql", ... }]`
- **若依赖 `@lark-apaas/*` / 妙搭模板:**
- **先告知用户**:本平台不保证页面+接口可用;推荐 `lark-apps` 云端或业务去平台化
- **禁止**主动承诺「自托管后与妙搭一致」
- **禁止**在 skill 流程里大改登录/伪造网关/补 SPA 模板(那是业务仓责任,且非本 skill 范围)
- 用户书面坚持后,仅按普通 Dockerfile 部署,交付时标注 **实验性**
- **Node 多阶段硬规则**(详见 `stack-profiles.md`
- 禁止在 `npm ci`/`pnpm install` **之前** `ENV NODE_ENV=production`(否则 `nest`/`vite` not found
- 大前端 Vite`NODE_OPTIONS=--max-old-space-size=3072`
@@ -227,12 +235,14 @@ Agent **不要**在 MCP 路径下再调 Dokploy `domain.create`(避免双绑/
| 用户说法 | 动作 |
|----------|------|
| 部署 / 上线 / 第一次发布 | MCP 全链路;交付 `url` |
| 部署 / 上线 / 第一次发布 | MCP 全链路;交付 `url`(普通 Dockerfile |
| 重试 / 再构建 | 新 SHA → 新 plan → apply已有 mapping |
| 查状态 / 我的项目 | `list_projects` / `get_deployment_status` |
| 配额 | `get_my_quota` |
| 只要链接 | `list_projects``url`;无则查 status |
| 运维直连 Dokploy | 仅明确要求时走 legacy |
| 妙搭应用 / `@lark-apaas` 上线 | **先边界说明**;优先 `lark-apps`;自托管仅实验、不承诺接口 |
| 修妙搭白屏 / 平台 API / 登录伪造 | **非本 skill**;说明需业务去平台化或妙搭云端,勿在控制面堆适配 |
---
@@ -243,12 +253,18 @@ Agent **不要**在 MCP 路径下再调 Dokploy `domain.create`(避免双绑/
- 已发布当前版本
- 访问:`https://buxi….loncode.site/`(以 MCP 返回为准)
- 需要库时:说明已注入数据库连接(**不打印密码**
- 若为妙搭实验部署:明确 **「仅容器/入口可能可用,登录与平台接口不保证」**
**失败:**
- 配额满 / 未登录 Key / 构建失败 / 证书签发中
- 给可执行下一步,不暴露平台密钥
**拒绝加戏:**
- 不要为了「页面像妙搭」去改 skill 流程、伪造网关、承诺 runtime API
- 控制面 `SELF_HOST_*` 只是 boot 兜底,不是功能完整度保证
---
## 安全红线
@@ -292,7 +308,8 @@ Agent **不要**在 MCP 路径下再调 Dokploy `domain.create`(避免双绑/
| 场景 | 用 |
|------|-----|
| 企业 Dockerfile 部署(默认) | **本 skill → MCP** |
| 妙搭云端发布 | `lark-apps` |
| 妙搭云端发布 / 平台能力迭代 | **`lark-apps`**(首选) |
| 妙搭模板硬上自托管 | 非主路径;见 `stack-profiles`**不**在本 skill 做深度适配 |
| 无 MCP 的运维救火 | 本 skill → legacy |
---
@@ -305,7 +322,8 @@ Agent **不要**在 MCP 路径下再调 Dokploy `domain.create`(避免双绑/
| git push 权限 / Permission denied / 要配 SSH | **错误路径**。改用 `ensure_repository``agentHint.pushUrl` 推送;禁止给用户配 SSH |
| `nest: not found` / `vite: not found` | build 阶段在装依赖前设了 `NODE_ENV=production`;先全量 `npm ci` 再设 production |
| `JavaScript heap out of memory` | Dockerfile build 加 `NODE_OPTIONS=--max-old-space-size=3072`;避免并行 npm ci机器内存过小则升配 |
| `FORCE_AUTHN_INNERAPI_DOMAIN` / 平台模式需要基础域名 | 妙搭模板自部署缺 env控制面 apply 会注入;老应用再 apply 或 Dokploy 手动补公网 URL |
| `FORCE_AUTHN_INNERAPI_DOMAIN` / 平台模式需要基础域名 | 镜像仍带 PlatformModule 时缺 boot env`apply` 会注入公网 URL**不表示业务已可用** |
| 妙搭项目:页面白屏 / `{{appId}}` / 接口 403·404 / JSON 解析 HTML | **预期内能力缺口**(非本 skill 必修)。引导去平台化或 `lark-apps`;勿在控制面加网关适配 |
| 运行中项目达上限 | `get_my_quota`;停/删旧应用后再部署 |
| Forbidden 看他人项目 | 非管理员;加 `ADMIN_OPEN_IDS` 或只查自己的 |
| 有部署无 HTTPS | 等 LE查 DNS/80控制面证书配置 |