用途:把 Docker 化的 GitHub 仓库接入自托管 Dokploy,实现每次推送到 main 自动重新部署。构建在 GitHub Actions 中完成,镜像推送到 GHCR(默认私有),Dokploy 通过工作流最后一步的 REST 调用拉取并重新部署。
主要能力与流程:先做前置检查(Dockerfile 是否含 EXPOSE 端口、.dockerignore、gh CLI 是否已认证、Dokploy MCP 是否连通、GitHub remote 是否为 GitHub 并转小写);再收集 Dokploy 项目名、应用名、域名、Dokploy 基础 URL、额外环境变量等输入。随后分阶段执行:A 写入 .github/workflows/docker-publish.yml 并提交到特性分支;B 通过 Dokploy MCP 依次解析组织、创建项目、创建应用、保存 Docker provider(镜像 ghcr.io/<owner>/<repo>:latest,密码先用 PAT_PLACEHOLDER 占位)、保存环境变量、创建域名、创建 API Key;C 用 gh secret set 设置 DOKPLOY_URL、DOKPLOY_API_KEY、DOKPLOY_APPLICATION_ID 三个密钥,并用 curl 冒烟测试 /api/application.deploy 返回 200;D 推送分支并开 PR;E 由用户在 GitHub 生成仅含 read:packages 的经典 PAT,直接粘贴到 Dokploy UI 的 Docker provider 密码字段(不经过对话);F 合并后观察 Actions 与 Dokploy 部署状态并访问域名。
限制与注意:GHCR 不支持 push webhook,因此采用 API 触发而非注册表 webhook;GHCR 镜像路径必须全小写;MCP 的 zod 联合类型拒绝 undefined,需显式传空字符串;Dokploy API Key 默认限速 10 次/24 小时;gh CLI 令牌默认不含 read:packages,故 PAT 需手动设置;该技能不迁移已有 Dokploy 应用的域名、不复制环境变量、不配置预览部署、健康检查或副本。