用 Docker 私有化部署 GitHub Actions Runner(Runner Fleet)
💡
原文中文,约6500字,阅读约需16分钟。
📝
内容提要
我整理了 GitHub 自托管 Runner 的经验,开发了开源工具 Runner Fleet,旨在简化 Runner 的管理与维护,提供轻量级 Web 管理界面,支持多种运行模式,帮助用户高效部署和扩容。
🎯
关键要点
- 开发了开源工具 Runner Fleet,旨在简化 GitHub 自托管 Runner 的管理与维护。
- Runner Fleet 提供轻量级 Web 管理界面,支持多种运行模式。
- 目标是将自托管 Runner 的部署、扩容、维护收敛成可复用的流程。
- 自托管 Runner 的管理难点在于长期稳定性,而非简单的启动。
- 多个 Runner 的管理会导致 Token 分散、环境污染和任务混乱等问题。
- Runner Fleet 提供安装、注册、启停、编辑、状态聚合及自愈巡检功能。
- 支持两种运行模式:宿主机模式和容器模式,便于环境隔离。
- 推荐将 Runner 拆分为通用、容器和重任务三类,以提高管理效率。
- 容器模式解决了 Runner 之间环境污染和升级回滚的问题。
- 提供详细的服务器环境准备和容器部署步骤。
- 通过 GitHub 获取 Runner Token,初始化 Fleet Runner 并配置 GitHub CI。
- 修改 CI 配置文件以启用自部署的 Runner,简化使用流程。
- Fleet 还支持裸金属和 Dind 模式,后续将分享更多使用方法。
❓
延伸问答
什么是 Runner Fleet?
Runner Fleet 是一个开源工具,旨在简化 GitHub 自托管 Runner 的管理与维护,提供轻量级的 Web 管理界面。
如何在服务器上准备环境以部署 Runner Fleet?
需要更新 Ubuntu、安装 Docker Engine 和 Compose 插件,并确保当前用户可以免 sudo 使用 Docker。
Runner Fleet 支持哪些运行模式?
Runner Fleet 支持宿主机模式和容器模式,便于环境隔离和资源管理。
如何使用 Runner Fleet 管理多个 Runner?
Runner Fleet 提供安装、注册、启停、编辑、状态聚合及自愈巡检功能,帮助用户高效管理多个 Runner。
为什么自托管 Runner 的管理难点在于长期稳定性?
因为在维护多个 Runner 时,Token 分散、环境污染和任务混乱等问题会导致管理复杂,影响稳定性。
如何修改 CI 配置文件以启用自部署的 Runner?
在 CI 文件中,将 runs-on 的配置从 ubuntu-latest 修改为 self-hosted,以使用自部署的 Runner。
➡️