Files
2026-06-29 11:16:11 +00:00

3.1 KiB
Raw Permalink Blame History

act_runner 配置参考

工作流 runs-on: ubuntu-latestdocker 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)。

  1. 登录 1Panel → 容器配置
  2. 镜像加速地址 填入:
    https://docker.1panel.live
    
  3. 保存并 重启 Docker

CI 工作流默认 IMAGE_PREFIX=docker.1panel.live/library/(buildkit 拉基础镜像)。若 1Panel 加速不可用,可在仓库 Variables 设 DOCKER_IMAGE_PREFIX=daocloudhub

验证

在 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.liveVariable 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 反向代理文档