尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
如何把 Dokku 接入 Woodpecker CI 实现 push 自动部署?
如何把 Dokku 接入 Woodpecker CI 实现 push 自动部署【免费下载链接】dokkuA docker-powered PaaS that helps you build and manage the lifecycle of applications项目地址: https://gitcode.com/GitHub_Trending/do/dokku当代码仓库向 Dokku 托管的应用推送新代码时你可能希望部署自动发生而不是手动git push。Dokku 提供官方 CI 镜像dokku/ci-docker-image可以在 Woodpecker CI 中通过一条dokku-deploy命令完成自动部署流水线监听 push 事件用 SSH 部署密钥把完整仓库推送到 Dokku 应用触发 Dokku 的构建流水线。本文基于 Woodpecker CI 集成文档 和 通用 CI/CD 集成文档 给出完整的配置路径。前提条件一台已安装 Dokku 的服务器并且应用已经创建例如通过首次git push创建或使用git:initialize初始化。一对本地生成的 SSH 密钥公钥将注册到 Dokku私钥将作为 Woodpecker 的 secret 注入流水线。Woodpecker CI 已可运行你的流水线任务。注意Dokku 的 Git 部署不支持从浅克隆shallow clone推送可能出现未定义行为参见 Git 部署文档 中的警告。Woodpecker 默认的 clone 阶段是浅克隆因此流水线必须显式改为完整克隆这一点在下面的配置中会处理。生成并注册部署用 SSH 密钥在本地生成一对 SSH 密钥后把公钥注册到 Dokku。在 Dokku 主机上执行dokku ssh-keys:add KEY_NAME path/to/id_rsa.pubKEY_NAME是你为这把密钥起的唯一名称重复使用同一个名称会报错密钥路径必须包含公钥内容且存在于服务器上。也可以直接通过管道传入公钥内容echo $CONTENTS_OF_YOUR_PUBLIC_SSH_KEY_HERE | dokku ssh-keys:add KEY_NAME成功时输出该密钥的指纹例如SHA256:ABC123ABC123abc123abc123Zabc123abcZ123abc以上为文档中的示例输出。两个要点来自 用户管理文档Git 通过 SSH 连接 Dokku 时用户始终是系统用户dokku所以GIT_REMOTE_URL中的用户名写dokkuKEY_NAME中加入admin一词会让该密钥的拥有者获得远程添加其他密钥的权限部署密钥不需要这样做。私钥则稍后配置为 Woodpecker 的 secret。配置 Woodpecker 流水线Dokku 的 Woodpecker CI 文档 给出的最简流水线配置如下其中dokku.me和appname需替换为你的 Dokku 主机域名和应用名when: - event: push branch: main clone: git: image: woodpeckerci/plugin-git settings: partial: false depth: 0 steps: - name: deploy image: dokku/ci-docker-image environment: GIT_REMOTE_URL: ssh://dokkudokku.me:22/appname SSH_PRIVATE_KEY: from_secret: DOKKU_ME_SSH_DEPLOY_KEY commands: - dokku-deploy配置中各部分的作用when只对main分支的 push 事件触发部署。把branch改成你实际推送到 Dokku 的分支。clone标准 clone 阶段被替换为使用woodpeckerci/plugin-git的完整克隆。partial: false、depth: 0表示不做部分克隆也不限制深度——因为 Dokku 会拒绝浅克隆。GIT_REMOTE_URL部署目标格式为ssh://dokkudokku主机:22/应用名。SSH_PRIVATE_KEY通过from_secret指令从 Woodpecker 的 secret 读取。示例中的DOKKU_ME_SSH_DEPLOY_KEY是文档示例使用的 secret 名称你在 Woodpecker 中创建 secret 时名称必须与from_secret的值一致内容为上一步生成的私钥。dokku-deploy官方镜像dokku/ci-docker-image提供的部署命令。根据 通用 CI 集成文档该镜像会自动检测包括 Woodpecker CI 在内的常见 CI 系统注入的环境变量因此只要GIT_REMOTE_URL和SSH_PRIVATE_KEY注入到位即可完成部署。部署分支的对应关系Dokku 默认部署推送到master分支的代码默认deploy-branch为master。如果你的代码仓库用main作为主分支有两种处理方式在流水线的 push 阶段把分支推到master或者在 Dokku 主机上用git:set修改部署分支全局或按应用生效# 全局覆盖所有应用 dokku git:set --global deploy-branch main # 只覆盖某个应用 dokku git:set node-js-app deploy-branch main另外从 0.22.1 起Dokku 会尊重首次推送的分支并自动将其设为deploy-branch值。验证部署结果流水线执行后可以在 Dokku 主机上用git:report查看应用的 git 信息dokku git:report node-js-app输出包含Git sha应用仓库的 HEAD commit SHA和Git last updated at部署分支 ref 最后一次写入的 UNIX 时间戳等字段字段名参见 Git 部署文档。如果 push 后的新提交 SHA 出现在输出中、时间戳更新到最近一次流水线运行时间说明 CI 的推送已经被 Dokku 接收并触发了部署。--format json可用于自动化场景dokku git:report node-js-app --format json限制与边界浅克隆推送不受支持clone阶段必须保持完整克隆depth: 0不要为提速改回默认浅克隆。dokku/ci-docker-image的更多配置示例和用法以该镜像仓库自身的文档为准本文只覆盖 Woodpecker 场景所需的最小配置。SSH 用户名固定为dokku若密钥未注册或私钥 secret 内容错误流水线将无法以 SSH 方式推送到 Dokku。【免费下载链接】dokkuA docker-powered PaaS that helps you build and manage the lifecycle of applications项目地址: https://gitcode.com/GitHub_Trending/do/dokku创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

如何在 Cursor 配置 daisyUI llms.txt 规则文件让 AI 正确生成组件代码

如何在 Cursor 配置 daisyUI llms.txt 规则文件让 AI 正确生成组件代码

如何在 Cursor 配置 daisyUI llms.txt 规则文件让 AI 正确生成组件代码 【免费下载链接】daisyui 🌼 🌼 🌼 🌼 🌼  The most popular, free and open-source Tailwind CSS component library 项目地址: https://git…

📅 2026/9/10 9:49:53
MediaPipe手势识别:63维关键点+机器学习实战

MediaPipe手势识别:63维关键点+机器学习实战

简介:本资源是一个基于MediaPipe的手势数字识别机器学习实战项目,面向计算机、人工智能、数据科学等专业学生及初入AI领域的开发者,解决手势图像采集、关键点提取、数字分类建模与实时识别等核心问题,适用于课程设计、大作业或毕设…

📅 2026/9/10 9:49:53
用神经网络打造游戏大局观教练:从特征工程到实时决策

用神经网络打造游戏大局观教练:从特征工程到实时决策

这篇不是教你怎么用AI代打,也不是给小孩省事的“外挂”。这个系列的定位更接近“陪练 复盘 策略顾问”的综合体。第一篇我们解决了让AI看懂游戏画面的基础问题,这一篇我把它升级成一个真正能“开口说话”的大局观教练——一个基于神经网络构建的、能在…

📅 2026/9/10 9:49:53
MORE NEWS

更多资讯

📰

MATLAB中神经网络代理模型与遗传算法混合优化

简介:本资源是一套基于MATLAB实现的神经网络与遗传算法融合优化方案,面向算法初学者及智能优化方向的工程实践者,用于高效求解复杂非线性函数的全局极值问题。压缩包共12个文件,含9个核心MATLAB脚本(如BP.m、Genetic.m…

📰

极限词自查:批量上架前的最后一道闸

极限词自查:批量上架前的最后一道闸 一次举报引发的连夜返工: 「同行举报我广告法违规——『最』『第一』『国家级』,标题里全有。这些词不是我想写的,是供货商给的资料表里自带的。我批量上架三百个品,标题直接从表里…

📰

CANN/ge图引擎导出API

aclgrphDumpGraph 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFl…

📰

云优CMS部署智能监控官网:静态生成+前端渲染实战指南

简介:本资源是一款专为智能监控系统设备生产企业定制的云优CMS网站模板,面向中小企业技术负责人、前端开发人员及建站运维人员,解决企业快速搭建专业官网、统一展示产品方案与技术实力的痛点。压缩包共1189个文件,含336个PHP核心逻…

📰

浏览器指纹伪装原理拆解:从Canvas到WebRTC的反检测技术

隐身模式是个好东西,但它给你的安全感,大概率是幻觉。很多人以为开了无痕窗口就"没人认得出我",实测下来,只要我拿到你浏览器的 Canvas 指纹、WebGL 渲染特征和字体列表,你在不在隐身模式下对我来说几乎没区…

📰

diagram-design:现代前端可视化工程的核心能力

1. 什么是 diagram-design:不是画图工具,而是现代前端可视化工程的核心能力“diagram-design”这个词最近在开发者社区里频繁出现,但它绝不是指某个叫“Diagram Design”的软件或插件。我第一次在团队内部评审会上听到这个词,是前…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬