feat(gitea): 添加 Dockerfile 模板和 Rust 支持,优化 runner 网络配置说明

- 新增 Go、Node.js、Rust 服务的 Dockerfile 模板
- 新增 Rust 快速参考指南
- 新增 Rust 后端工作流模板
- 优化 create-runner.md,明确 host 网络模式为缓存必需条件
- 更新 gitea skill 主文档
This commit is contained in:
voson
2026-01-30 10:11:18 +08:00
parent f36b0159bd
commit 425ca5b5fd
8 changed files with 3111 additions and 288 deletions

View File

@@ -7,6 +7,15 @@ agent: general
本文档提供了多种创建 Gitea Actions Runner 的方式,支持 Host 模式和 Docker 模式。
## ⚠️ 重要:网络模式要求
**两种模式都必须使用 host 网络模式,否则缓存功能无法正常工作!**
- **Docker 模式**Runner 容器和 Job 容器都使用 host 网络
- **Self-host 模式**Job 进程直接在宿主机运行,使用 127.0.0.1
原因Gitea Actions 的缓存服务运行在 runner 本地job 容器需要通过网络访问 runner 的缓存端口。只有在 host 网络模式下job 容器才能访问到 runner 的缓存服务。
## 📦 快速使用
### 方法一:直接执行(推荐)
@@ -108,6 +117,7 @@ cache:
host: "host.docker.internal"
port: 9040
container:
# 【关键】必须使用 host 网络!否则 job 容器无法访问 runner 的缓存服务
network: "host"
privileged: false
options:
@@ -123,6 +133,7 @@ YAML
# 注意:不要使用 node:16-bullseye 等纯运行时镜像,它们不包含 docker 命令
local labels="ubuntu-latest:docker://catthehacker/ubuntu:act-latest,ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04,ubuntu-20.04:docker://catthehacker/ubuntu:act-20.04,linux:docker://catthehacker/ubuntu:act-latest"
# 必须使用 --network host这样 job 容器才能访问 runner 的缓存服务
docker run -d \
--name "$name" \
--restart always \
@@ -178,6 +189,7 @@ runner:
cache:
enabled: true
dir: "$runner_dir/cache"
# Self-host 模式job 进程直接在宿主机运行,使用 127.0.0.1 访问缓存
host: "127.0.0.1"
port: 0
host:
@@ -747,6 +759,7 @@ EOF
echo "启动 Docker 容器 (自动注册)..."
# 必须使用 --network host这样 job 容器才能访问 runner 的缓存服务
docker run -d \
--name "$name" \
--restart always \
@@ -1074,7 +1087,7 @@ cache:
host: "host.docker.internal"
port: 9040
container:
# 使用 host 网络模式,确保 runner 和 job 容器共处一个网络,以便 cache 能够正常访问
# 【关键】必须使用 host 网络!否则 job 容器无法访问 runner 的缓存服务
network: "host"
privileged: false
options:
@@ -1088,7 +1101,7 @@ EOF
echo "启动 Docker 容器 (自动注册)..."
# 使用 host 网络模式,确保 runner 和 job 容器共处一个网络,以便 cache 能够正常访问
# 【关键】必须使用 --network host否则 job 容器无法访问 runner 的缓存服务
docker run -d \
--name "$runner_name" \
--restart always \