♻️ 隔离 workflow 工作区并提升默认 runner 并发

This commit is contained in:
csh
2026-05-22 09:25:58 +08:00
parent 34480c16e2
commit ac05621817
7 changed files with 527 additions and 148 deletions
+16 -3
View File
@@ -33,6 +33,9 @@ docker-runner/
│ ├── register.sh # Runner 注册脚本
│ └── manage.sh # Runner 管理脚本
├── .gitea/ci/
│ └── bootstrap_workspace.sh # workflow 自举脚本(下载后准备 mirror 和独立工作区)
└── presets/ # 预设配置(选择一个使用)
├── standard-ubuntu-22/ # 标准版 (Ubuntu 22.04)
│ ├── Dockerfile
@@ -49,7 +52,14 @@ docker-runner/
- `common/` 目录中的脚本由所有版本共享,通过 docker-compose.yml 挂载到容器
- `presets/` 目录中每个子目录是一个完整的预设配置,包含 Dockerfile 和 docker-compose.yml
- 数据持久化在 `runner-data/` 目录(自动创建),包含 runner 配置、缓存和 act_runner 二进制文件
- 数据持久化在 `runner-data/` 目录(自动创建),包含 runner 配置、mirror 缓存和 act_runner 二进制文件
### 并发与工作区模型
- 新注册的 runner 默认 `capacity=4`
- 共享仓库缓存保存在 `/data/git-mirrors/<owner>/<repo>.git`
- 每个 job 会从 mirror 本地克隆到独立目录 `/home/workspace/jobs/<owner>/<repo>/<job-identity>/repo`
- job 结束后临时工作目录会自动清理,mirror 会保留以加速后续大仓库同步
---
@@ -139,7 +149,7 @@ docker compose exec gitea-runner /data/register.sh
输入你的 Gitea 实例 URL 和注册令牌。
Runner 注册后会自动启动,无需重启容器。
Runner 注册后会自动启动,无需重启容器。新注册的 runner 默认并发为 `4`
#### 6. 验证运行状态
@@ -577,6 +587,9 @@ docker system df
runner-data/
├── bin/
│ └── act_runner # Runner 可执行文件(持久化)
├── git-mirrors/ # 持久化 bare mirror 缓存
│ └── <owner>/
│ └── <repo>.git
├── runners/ # Runner 配置目录
│ └── <runner-name>/
│ ├── .runner # 注册信息
@@ -586,7 +599,7 @@ runner-data/
└── .configured
```
容器重启或重建后,数据不会丢失。
容器重启或重建后,数据不会丢失。workflow 的临时工作目录位于 `/home/workspace/jobs/...`,任务结束后会自动清理,不会作为持久化数据保留。
### Q10: 如何切换不同预设?