woodpecker-ci
应用介绍
Woodpecker CI 是一个简单而强大的开源持续集成/持续部署(CI/CD)引擎,具有优秀的可扩展性。它是基于 Drone CI 分叉开发的项目,保持了简单易用的设计理念,同时去除了限制,完全开放源代码。
Woodpecker CI 使用基于 Docker 的架构,每个流水线任务都在独立的 Docker 容器中运行,环境隔离干净,配置简单。它非常适合部署在个人NAS上,为你的个人开源项目提供自动化构建和部署服务。
Woodpecker CI 的优势: - 资源占用极低:服务器空闲时仅占用约 100MB 内存,Agent 仅占用 30MB,非常适合在NAS上运行 - 配置简单:使用 YAML 文件配置流水线,语法简洁易懂 - 扩展性强:丰富的插件生态系统,可以轻松构建、测试、部署各种项目 - 支持多种Git服务商:GitHub、GitLab、Gitea、Codeberg 等都支持 - 完全开源:Apache 2.0 协议,没有功能限制,不需要付费订阅

安装说明
前提依赖
- 支持 Docker 和 Docker Compose 的NAS系统
- 至少 1GB 内存,Woodpecker 本身资源占用很低,构建任务需要更多资源
- 需要配置公网访问,以便Git服务商触发Webhook
安装配置
Woodpecker 采用服务器+代理架构,以下是Docker Compose配置示例:
version: '3'
services:
woodpecker-server:
image: woodpeckerci/woodpecker-server:latest
ports:
- 8000:8000
- 9000:9000
volumes:
- woodpecker-server-data:/var/lib/woodpecker/
environment:
- WOODPECKER_OPEN=true
- WOODPECKER_ADMIN=your-username
- WOODPECKER_HOST=https://your-ci-domain.com
restart: unless-stopped
woodpecker-agent:
image: woodpeckerci/woodpecker-agent:latest
command: agent
restart: unless-stopped
depends_on:
- woodpecker-server
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WOODPECKER_SERVER=woodpecker-server:9000
- WOODPECKER_TOKEN=your-agent-token
volumes:
woodpecker-server-data:配置说明: - WOODPECKER_OPEN:允许用户注册,设置为 true 开启 - WOODPECKER_ADMIN:设置管理员用户名 - WOODPECKER_HOST:设置你的CI服务器访问地址 - 需要挂载 Docker socket 让 Agent 能够启动构建容器
使用说明
- 启动服务后访问服务器地址,使用Git账号登录
- 在个人设置中激活需要构建的仓库
- 在仓库根目录创建
.woodpecker.yaml配置文件 - 示例配置:
pipeline:
test:
image: golang:1.22
commands:
- go test -v ./...
build:
image: golang:1.22
commands:
- go build -o myapp .- 提交代码后会自动触发流水线构建
- 可以在Woodpecker界面查看构建日志和结果
- 支持分支过滤、标签触发、定时构建等多种触发方式
Woodpecker CI 拥有丰富的插件生态,可以实现Docker镜像构建、推送至镜像仓库、部署到服务器、发送通知等各种功能。
开源信息
- GitHub 地址: https://github.com/woodpecker-ci/woodpecker
- 官方网站: https://woodpecker-ci.org
- 文档地址: https://woodpecker-ci.org/docs/intro
- 插件库: https://woodpecker-ci.org/plugins
- 开源协议: Apache-2.0