ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Woodpecker 支持平台完全指南:组件发布矩阵与执行后端选型

Woodpecker 支持平台完全指南:组件发布矩阵与执行后端选型 CI/CDDevOps【免费下载链接】woodpeckerWoodpecker is a simple, yet powerful CI/CD engine with great extensibility.项目地址https://gitcode.com/gh_mirrors/wo/woodpecker点击查看免费下载本篇指南围绕 Woodpecker CI/CD 引擎的官方支持平台清单展开系统说明woodpecker-server、woodpecker-agent、woodpecker-cli与plugin-git四大组件的发布形态容器镜像 / 预编译二进制、操作系统与架构覆盖范围以及 Docker、Kubernetes、Local 三种执行后端在不同主机平台上的可用性。读完本文你将能根据自有服务器与 Agent 主机的操作系统快速确定应下载哪种安装包、选择哪个执行后端并理解底层构建与自动探测机制。发布形态容器镜像与预编译二进制Woodpecker 的每个组件都以两种形态对外发布容器镜像Image推送到 DockerHub 与 Quay 两个镜像仓库适用于 Docker、Kubernetes 等容器化部署场景预编译二进制Binary以.tar.gz压缩包或 Windows 下的.exe形式附加在官方 release 页面适用于直接安装到宿主机的场景。并非每个组件在所有平台上都可用。整体上server 与 Docker/Kubernetes 后端是 Linux 为中心的——server 依赖 Linux 运行时而两种容器后端依赖 Linux 容器运行时agent 与 CLI 则通过 Local 后端覆盖更广的操作系统集合包括 Windows、macOS、FreeBSD、OpenBSD。这一点在仓库的镜像构建文件中也能得到印证server 镜像如 docker/Dockerfile.server.multiarch.rootless只针对dist/server/${TARGETOS}_${TARGETARCH}/woodpecker-server打包而 agent 镜像docker/Dockerfile.agent.multiarch与 CLI 镜像docker/Dockerfile.cli.multiarch.rootless的构建方式与之类似均以 scratch 或 alpine 为基础镜像、以非 root 用户运行并统一暴露健康检查端点。四大组件与各自职责组件用途woodpecker-serverWeb UI、API、webhook 接收器、流水线调度器。woodpecker-agent通过执行后端Docker、Kubernetes、Local运行流水线工作流。woodpecker-cli用于与 server 交互的命令行工具。plugin-git默认的克隆插件每个工作流开始时由 agent 自动调用。默认以容器镜像形式分发同时也发布二进制供 Local 后端使用。从代码结构看woodpecker-server、woodpecker-agent、woodpecker-cli的入口分别位于仓库的 cmd/server、cmd/agent 与 cmd/cli 目录其中 agent 通过 agent/runner.go 将后端抽象与工作流执行逻辑解耦是后端可插拔设计的核心载体。组件 / 平台矩阵下表列出 Woodpecker 项目官方构建并发布的平台组合。其中Image表示容器镜像已推送到 DockerHub 与 QuayBinary表示预编译的.tar.gz压缩包或.exe已附加到官方 release。OS / 架构serveragentcliplugin-gitlinux / amd64Image BinaryImage BinaryImage BinaryImage Binarylinux / arm64 (arm64/v8)Image BinaryImage BinaryImage BinaryImage Binarylinux / arm/v7ImageImage BinaryImage BinaryImage Binarylinux / arm/v6ImageImageImageImagelinux / 386ImageImageImageImagelinux / ppc64leImageImageImageImagelinux / riscv64Image BinaryImage BinaryImage BinaryImagelinux / s390xImageImageImageImagewindows / amd64BinaryBinaryBinaryBinarywindows / arm64–––Binarydarwin / amd64 (macOS Intel)–BinaryBinaryBinarydarwin / arm64 (macOS Apple Silicon)–BinaryBinaryBinaryfreebsd / amd64Image BinaryImage BinaryImage BinaryBinaryfreebsd / arm64–Image BinaryImage BinaryBinaryopenbsd / amd64–BinaryBinaryBinaryopenbsd / arm64–BinaryBinaryBinary这张矩阵与仓库 Makefile 中的发布目标一一对应。例如release-agent目标逐条列出linux/amd64、linux/arm64、linux/riscv64、linux/arm、windows/amd64、darwin/amd64、darwin/arm64、freebsd/amd64、freebsd/arm64、openbsd/amd64、openbsd/arm64的交叉编译与打包命令release-cli目标同样覆盖除windows/arm64之外的全部平台release-server则通过 xgo 或原生交叉编译产出多平台二进制再打包为.tar.gz或.zip。因此上表Binary列的内容都可以视为源码构建配置的直接产物。发行版软件包DEB / RPM针对linux/amd64与linux/arm64项目还额外产出 DEB 与 RPM 软件包下载链接与 systemd 单元示例详见 Distribution packages 页面。该页面同时给出了基于 apt/dnf 的安装命令、/etc/woodpecker/woodpecker-server.env与woodpecker-agent.env环境文件模板以及 server/agent 两个 systemd 服务的完整单元配置适合直接以发行版原生方式托管服务的用户。对于其他架构则需要回到上表改用二进制压缩包或容器镜像。执行后端与平台支持agent 可以运行在上表列出的任何平台之上但实际可用的执行后端取决于 agent 宿主机的操作系统后端LinuxWindowsmacOSFreeBSDOpenBSDDockerSupportedSupported1–[WIP][^freebsd-docker]–KubernetesSupported––––LocalSupportedSupportedSupportedSupportedSupported围绕这张矩阵有几条关键结论值得展开Docker 与 Kubernetes 后端依赖 Linux 容器运行时因此通常要求 agent 运行在 Linux 主机上。Windows 上可通过 WSL2 或 Windows 容器获得 Docker 能力而在 macOS 或 OpenBSD 上运行 agent则只能使用 Local 后端。Local 后端直接在 agent 宿主机上执行流水线命令不做任何隔离是 macOS 与 OpenBSD 上唯一可用的后端仅适用于受信任的私有环境。完整的安全说明见 Local 后端文档。该文档特别警告由于命令与 agent 同用户、同文件系统运行恶意流水线可能读取到 agent 配置乃至WOODPECKER_AGENT_SECRET因此不应在允许任何人提交代码的公开实例上使用agent 也不应以 root 等特权用户运行。Local 后端会把克隆的代码与执行目录放在$TMPDIR下的随机目录中并可通过WOODPECKER_BACKEND_LOCAL_TEMP_DIR指定工作流临时目录。plugin-git 默认以容器方式被调用在 Docker/Kubernetes 后端不可用的主机上需要将 Local 后端配置为使用 plugin-git 的二进制版本或者干脆禁用克隆步骤、在流水线里手动克隆。从源码看后端的自动探测与可用性agent 的WOODPECKER_BACKEND环境变量对应 CLI 参数--backend-engine默认值为auto-detect见 cmd/agent/core/flags.go。auto-detect的具体语义由 pipeline/backend/backend.go 中的FindBackend实现它会依次遍历注册的各个后端引擎返回第一个IsAvailable(ctx)为真的后端若全部不可用则报错若显式指定了后端名称则按名称精确匹配。各后端的IsAvailable逻辑可以在对应实现中查看。以 Local 后端为例pipeline/backend/local/local.go 会检查环境变量WOODPECKER_IN_CONTAINER——该变量在官方镜像构建文件如 docker/Dockerfile.agent.multiarch中被显式设置为true用于标识运行在容器内。也就是说当 agent 以容器形态运行时Local 后端默认不会被自动选中从而避免在容器内执行无隔离任务反过来在 Windows、macOS、FreeBSD、OpenBSD 等宿主机上直接运行 agent 二进制时该变量不存在Local 后端即可被探测为可用。这与前文macOS/OpenBSD 只能用 Local 后端的矩阵结论完全自洽。选型建议为你的环境挑选组件与后端综合上面的矩阵可按部署形态给出几条实操路径Linux 服务器 Linux Agent主流场景server 与 agent 均首选容器镜像Docker Compose 或 Kubernetes后端选 Docker 或 Kubernetes获得完整的隔离与资源管理能力。若直接以二进制方式安装可使用linux/amd64或linux/arm64的 tarball 或 DEB/RPM 包。Apple Silicon / Intel Mac 上的 Agent只能选择预编译二进制darwin/arm64或darwin/amd64后端固定为 Local。请确认流水线代码可信且不要以特权用户运行 agent。Windows Agent使用windows/amd64的.exe压缩包后端可选 Local直接执行或通过 WSL2 Docker Desktop / 原生 Windows 容器启用 Docker 后端。FreeBSD / OpenBSD Agent均无 server 二进制只运行 agent 与 CLIOpenBSD 只有 Local 后端FreeBSD 的 Docker 后端仍在开发中。多架构 Linux 环境linux/riscv64已覆盖 server、agent、cli 的镜像与二进制plugin-git 仅镜像适合在 RISC-V 设备上搭建 CI 基础设施arm/v7、arm/v6、ppc64le、s390x则仅提供镜像需要以容器方式运行。最后提醒一点官方发布清单中的Image与Binary覆盖范围并不总是相同例如 windows/arm64 只有 plugin-git 二进制、freebsd/amd64 的 plugin-git 只有二进制下载前请对照组件/平台矩阵逐一确认避免在目标主机上拿到不可运行的组件形态。Windows 上 Docker 后端通过 WSL2 Docker Desktop 工作也支持原生 Windows 容器。↩赞分享CI/CDDevOps【免费下载链接】woodpeckerWoodpecker is a simple, yet powerful CI/CD engine with great extensibility.项目地址https://gitcode.com/gh_mirrors/wo/woodpecker点击查看免费下载相关推荐Pillow Python 版本支持指南官方支持矩阵与选型实践Pillow Python 版本支持指南官方支持矩阵与选型实践 导读 PillowPython Imaging Library 的现代 fork对 Pyt图像处理计算机视觉LMDeploy 支持模型矩阵全解读TurboMind 与 PyTorch 引擎跨平台适配指南LMDeploy 支持模型矩阵全解读TurboMind 与 PyTorch 引擎跨平台适配指南 LMDeploy 是面向大模型压缩、部署与服务的工具套件其模人工智能大模型模型推理服务推理引擎本地部署模型量化FlatBuffers 平台 / 语言 / 特性支持矩阵全解析跨语言生态能力对照与选型指南FlatBuffers 平台 / 语言 / 特性支持矩阵全解析跨语言生态能力对照与选型指南 导读 FlatBuffers 是一个持续演进的跨平台内存高效序列化序列化跨平台编译器上一篇Cartography实现标签页指示器iOS应用导航组件下一篇XAgent 中跨 OpenAI SDK 版本的模型别名测试test_model_alias 测试用例详解创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表