♻️ 隔离 workflow 工作区并提升默认 runner 并发
This commit is contained in:
+16
-3
@@ -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: 如何切换不同预设?
|
||||
|
||||
|
||||
Reference in New Issue
Block a user