Docker安装Gitea Act Runner

开启Actions

从1.21.0开始,默认情况下,Actions是启用的。如果您正在使用1.21.0之前的版本,您需要将以下内容添加到配置文件中以启用它:

[actions]
ENABLED=true
Act Runner安装

1.首先创建 config.yaml 配置文件

docker run --entrypoint="" --rm -it gitea/act_runner:latest act_runner generate-config > config.yaml

以下是翻译后的

# 示例配置文件,可以将其安全地复制为默认配置文件,无需进行任何修改。

# 您无需将此文件复制到您的实例中,
# 只需运行 `./act_runner generate-config > config.yaml` 来生成配置文件。

log:
  # 日志级别,可以是 trace, debug, info, warn, error, fatal
  level: info

runner:
  # 存储注册结果的位置。
  file: .runner
  # 同时并发执行多少任务。
  capacity: 1
  # 执行作业时的额外环境变量。
  envs:
    A_TEST_ENV_NAME_1: a_test_env_value_1
    A_TEST_ENV_NAME_2: a_test_env_value_2
  # 从文件中执行作业时的额外环境变量。
  # 如果为空或文件不存在则会被忽略。
  env_file: .env
  # 完成作业的超时时间。
  # 请注意 Gitea 实例也有作业的超时设置(默认为3小时)。
  # 因此如果 Gitea 实例的超时时间比这个设置短,作业可能会被 Gitea 实例停止。
  timeout: 3h
  # 是否跳过验证 Gitea 实例的 TLS 证书。
  insecure: false
  # 从 Gitea 实例获取作业的超时时间。
  fetch_timeout: 5s
  # 从 Gitea 实例获取作业的间隔时间。
  fetch_interval: 2s
  # 运行器的标签用于确定运行器可以运行哪些作业,以及如何运行它们。
  # 例如:["macos-arm64:host", "ubuntu-latest:docker://node:16-bullseye", "ubuntu-22.04:docker://node:16-bullseye"]
  # 如果在注册时为空,它将要求输入标签。
  # 如果在执行 `daemon` 时为空,将使用 `.runner` 文件中的标签。
  #labels: []
  labels: ["ubuntu-latest:docker://node:16-bullseye", "ubuntu-22.04:docker://node:16-bullseye", "ubuntu-20.04:docker://node:16-bullseye", "ubuntu-18.04:docker://node:16-buster"]

cache:
  # 启用缓存服务器以使用 actions/cache。
  enabled: true
  # 存储缓存数据的目录。
  # 如果为空,缓存数据将存储在 $HOME/.cache/actcache 中。
  dir: ""
  # 缓存服务器的主机。
  # 这不是监听的地址,而是作业容器从中连接的地址。
  # 因此 0.0.0.0 是一个不好的选择,请留空以自动检测。
  host: ""
  # 缓存服务器的端口。
  # 0 表示使用一个随机可用端口。
  port: 0
  # 外部缓存服务器的 URL。仅在启用时有效。
  # 如果指定,act_runner 将使用此 URL 作为 ACTIONS_CACHE_URL,而不是自己启动服务器。
  # URL 通常应以 "/" 结尾。
  external_server: ""

container:
  # 指定容器将连接到的网络。
  # 可以是 host、bridge 或自定义网络的名称。
  # 如果为空,act_runner 将自动创建一个网络。
  network: ""
  # 启动任务容器时是否使用特权模式(Docker in Docker 需要特权模式)。
  privileged: false
  # 容器启动时使用的其他选项(例如,--add-host=my.gitea.url:host-gateway)。
  options:
  # 作业工作目录的父目录。
  # 如果为空,将使用 /workspace。
  workdir_parent:
  # 可以挂载到容器的卷(包括绑定挂载)。支持 Glob 语法,见 https://github.com/gobwas/glob
  # 您可以指定多个卷。如果序列为空,则不会挂载任何卷。
  # 例如,如果您只允许容器挂载 `data` 卷和 `/src` 中的所有 json 文件,您应该将配置更改为:
  # valid_volumes:
  #   - data
  #   - /src/*.json
  # 如果您想允许任何卷挂载,您可以使用以下配置:
  # valid_volumes:
  #   - '**'
  valid_volumes: []
  # 使用指定的 docker 客户端主机进行覆盖。
  # 如果为空,act_runner 将自动找到一个可用的 docker 主机。
  # 如果为 "-",act_runner 将自动找到一个可用的 docker 主机,但不会将 docker 主机挂载到作业容器和服务容器中。
  # 如果不为空或 "-",将使用指定的 docker 主机。如果无法使用,将返回错误。
  docker_host: ""
  # 即使镜像已经存在,也要强制拉取 docker 镜像。
  force_pull: false

host:
  # 作业工作目录的父目录。
  # 如果为空,将使用 $HOME/.cache/act/。
  workdir_parent:

2.创建一个docker-compose.yml

version: "3.8"
services:
  runner:
    image: gitea/act_runner:latest
    container_name: act_runner
    environment:
      CONFIG_FILE: /config.yaml
      GITEA_INSTANCE_URL: "你的 Gitea 地址"
      GITEA_RUNNER_REGISTRATION_TOKEN: "Gitea Actions 密钥"
      GITEA_RUNNER_NAME: "docker_runner"
    volumes:
      - ./config.yaml:/config.yaml
      - ./dаta:/data
      - ./act_cache:/root/.cache
      - /var/run/docker.sock:/var/run/docker.sock
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro

在官方基础上新增了缓存和时间

3.启动

docker-compose up -d
快速开始示例
name: Gitea Actions Demo
run-name: ${{ gitea.actor }} is testing out Gitea Actions ?
on: [push]

jobs:
  Explore-Gitea-Actions:
    runs-on: ubuntu-latest
    steps:
      - run: echo "? The job was automatically triggered by a ${{ gitea.event_name }} event."
      - run: echo "? This job is now running on a ${{ runner.os }} server hosted by Gitea!"
      - run: echo "? The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
      - name: Check out repository code
        uses: actions/checkout@v3
      - run: echo "? The ${{ gitea.repository }} repository has been cloned to the runner."
      - run: echo "?️ The workflow is now ready to test your code on the runner."
      - name: List files in the repository
        run: |
          ls ${{ gitea.workspace }}
      - run: echo "? This job's status is ${{ job.status }}."
注意事项

由于我是用的Arm64,但是不能下载python环境,如果需要python环境请选择x64系统

https://docs.gitea.com/zh-cn/usage/actions/act-runner

文章作者: Caesar
文章链接: https://pcnto.com/linux/55-docker安装gitea-act-runner.html
版权声明: 本博客所有文章除特别声明外,转载请注明来自 Peng blog

如果您喜欢本站,你可以点击主页广告以示支持,谢谢。

广告是本站收益的来源希望您能够谅解。