3.1 KiB
act_runner 配置参考
工作流 runs-on: ubuntu-latest;docker job 额外使用 catthehacker/ubuntu:act-22.04 容器(含 Docker CLI)。
构建镜像必须:挂载 Docker Socket
docker job 需要访问宿主机 Docker 引擎。在 runner 所在机器 的 config.yaml 中配置:
container:
options: -v /var/run/docker.sock:/var/run/docker.sock
valid_volumes:
- /var/run/docker.sock
推荐 job 镜像(含 Node + Docker CLI):
runner:
labels:
- "ubuntu-latest:docker://catthehacker/ubuntu:act-22.04"
- "ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04"
修改后 重启 runner(例如 docker restart <runner容器> 或重启 Gitea Runner 服务)。
1Panel 宿主机:配置 Docker 镜像加速(推荐)
Runner 通过 docker.sock 使用宿主机 Docker。在 1Panel 中配置加速器后,普通 docker pull 会走加速;buildx 多架构构建仍建议配合 workflow 内的 IMAGE_PREFIX(默认 docker.1panel.live)。
- 登录 1Panel → 容器 → 配置
- 镜像加速地址 填入:
https://docker.1panel.live - 保存并 重启 Docker
CI 工作流默认 IMAGE_PREFIX=docker.1panel.live/library/(buildkit 拉基础镜像)。若 1Panel 加速不可用,可在仓库 Variables 设 DOCKER_IMAGE_PREFIX=daocloud 或 hub。
验证
在 runner 宿主机执行:
docker info
ls -l /var/run/docker.sock
从零部署 runner(可选)
cd .gitea/act-runner
cp .env.example .env # 填入 Registration Token
docker compose up -d
GitHub Actions 镜像
本模板 ci.yml 已使用 https://gitea.com/actions/checkout@v4,不依赖 runner 的 github_mirror 配置。
若其他 workflow 仍写 uses: actions/checkout@v4,可在 runner config.yaml 中设置:
runner:
github_mirror: 'https://gitea.com'
常见错误
| 报错 | 原因 | 处理 |
|---|---|---|
registry-1.docker.io i/o timeout |
Docker Hub 不可达 | 1Panel 配 docker.1panel.live;Variable DOCKER_IMAGE_PREFIX=1panel |
docker: command not found |
job 容器无 Docker CLI | 工作流已指定 act 镜像;或 runner 改用 catthehacker/ubuntu |
Cannot connect to Docker daemon |
未挂载 docker.sock | 按上文修改 config.yaml 并重启 runner |
http: server gave HTTP response to HTTPS client 且 token 指向 127.0.0.1 |
Gitea Registry 配置/反代错误 | 见 .gitea/README.md |
Registry 登录失败(127.0.0.1 / HTTP vs HTTPS)
若 docker login git.example.com 报错类似:
Get "https://127.0.0.1:xxxxx/v2/token?...": http: server gave HTTP response to HTTPS client
说明 Gitea 把 Docker 认证 token 地址 配成了本机内网地址,CI runner 访问不到。需在 Gitea 服务器 修复:
[server]
ROOT_URL = https://git.example.com/
LOCAL_ROOT_URL = http://127.0.0.1:3000/
[packages]
ENABLED = true
ROOT_URL 必须与浏览器访问 Gitea 的 HTTPS 外网地址 完全一致(含末尾 /)。
参考:Gitea 反向代理文档