最近一直在白嫖 Github Action 来爬取VPS的库存信息(详见签名网站),不知不觉就超过了 每月2000分钟的免费限额。

于是找到了如下方面使用selfhost的方式部署,分享之。

  1. 获取仓库级别的配置信息

    Settings->Actions->Runners->new self-hosted runner
    在配置项目里面找到 如 ./config.cmd --url https://github.com/xxx/xxxx --token thisisatoken 的配置信息

  2. 使用 docker compose 启动 runner
    新建 compose.yml 如下:

    services:  worker:	image: myoung34/github-runner:latest	environment:	  REPO_URL: https://github.com/xxx/xxxx # --url 也就是仓库地址	  RUNNER_NAME: hd # 区分用的名字,随意	  RUNNER_TOKEN: thisisatoken # --token 的值	  RUNNER_WORKDIR: /tmp/runner/work	  RUNNER_SCOPE: 'repo'	  LABELS: linux,x64	security_opt:	  - label:disable	restart: always	volumes:	  - '/var/run/docker.sock:/var/run/docker.sock'	  - '/runner/data:/runner/data' # required for persistence	  - '/tmp/runner:/tmp/runner'

    而后 docker compose up -d 启动即可。

  3. 检查状态是否正常

    Settings->Actions->Runners 中能看到 自己的主机已经上线,且处于闲置(Idle)。

  4. 将Action的任务放到主机去跑

    将原先 workflows 文件中的 runs-on: 的值改为 self-hosted,然后触发Action,即可发现任务可以成功下发到自己的主机上。

值此已经大功告成,既可以利用闲置主机,又不怕Github的账单超了。

更多用法,可参考原项目的 WIKI => https://github.com/myoung34/docker-github-actions-runner/wiki/Usage