Skip to content
返回部署

Drone CI

容器原生 CI/CD,.drone.yml 和 Docker 流水线步骤。

CI/CD进阶

为什么

Drone 是容器原生 CI — 每步在 Docker 容器运行。.drone.yml 简单,集成 Gitea、GitHub、GitLab。

何时使用

自托管 Docker CI 用 Drone。托管避免(用 GH Actions)。

如何做

1. 安装 — Drone 服务器 + runner 2. 配置 — 仓库中 .drone.yml 3. 步骤 — Docker 镜像 + 命令 4. 流水线 — push/PR 触发 5. 密钥 — drone secret add 6. Volume — 挂载缓存 volume 7. 插件 — 预构建步骤(npm、docker)

示例

# .drone.yml kind: pipeline type: docker name: default steps: - name: test image: node:20 commands: [npm ci, npm test] - name: build image: node:20 commands: [npm run build] - name: deploy image: node:20 commands: [npx vercel --prod --token $VERCEL_TOKEN] when: { branch: [main] } trigger: { branch: [main, develop] }

常见问题

  • ⚠Runner 未连接 — 检查 DRONE_RPC_SECRET 匹配服务器
  • ⚠密钥不可用 — 经 drone CLI 或 UI 添加,非 yml
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓常见步骤用插件 — drone-plugin-node、drone-plugin-docker
  • ✓用 volume 缓存 — 挂载 node_modules volume 加速
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答