进行管控,以防止***PR窃取这些变量。
请注意,尽管此Runner安装并允许使用Docker,但GitHub Actions本身尚不支持在自托管Runner中使用Docker。更多信息:
此外,部分GitHub Actions工作流功能(如Job Services)无法使用,会导致错误。
当前Runner不支持containerd。
| 容器基础 | 支持架构 | 标签正则表达式 | Docker标签 | 描述 | 备注 |
|---|---|---|---|---|---|
| ubuntu focal | x86_64,arm64 | /\d\.\d{3}\.\d+/ /\d\.\d{3}\.\d+-ubuntu-focal/ | latest ubuntu-focal | 最新构建版本(每晚重建,主分支合并时也会重建)。包含不带操作系统名称的标签和带-ubuntu-focal的标签,基于上游标签创建。 | |
| ubuntu noble | x86_64,arm64 | /\d\.\d{3}\.\d+-ubuntu-noble/ | ubuntu-noble | 基于noble的最新构建版本(每晚重建,主分支合并时也会重建)。包含带-ubuntu-noble的标签,基于上游标签创建。 | |
| ubuntu jammy | x86_64,arm64 | /\d\.\d{3}\.\d+-ubuntu-jammy/ | ubuntu-jammy | 基于jammy的最新构建版本(每晚重建,主分支合并时也会重建)。包含带-ubuntu-jammy的标签,基于上游标签创建。 | 在20.04LTS主机中运行jammy存在已知问题,因此未设为latest。 |
| debian buster(已弃用) | x86_64,arm64 | /\d\.\d{3}\.\d+-debian-buster/ | debian-buster | Debian buster已弃用。arm v7的软件包不稳定,经常导致构建失败(如git和liblttng-ust#)。包含带-debian-buster的标签,基于上游标签创建。 | |
| debian bookworm | x86_64,arm64 | /\d\.\d{3}\.\d+-debian-bookworm/ | debian-bookworm | 基于bookworm的最新构建版本(每晚重建,主分支合并时也会重建)。包含带-debian-bookworm的标签,基于上游标签创建。 | |
| debian sid | x86_64,arm64 | /\d\.\d{3}\.\d+-debian-sid/ | debian-sid | 基于sid的最新构建版本(每晚重建,主分支合并时也会重建)。包含带-debian-sid的标签,基于上游标签创建。 |
这些容器通过GitHub Actions构建,复制Dockerfile并修改FROM指令以简化构建过程。
| 环境变量 | 描述 |
|---|---|
RUN_AS_ROOT | 是否以root用户运行的布尔值。若为true:以root运行;若为True且用户被覆盖则报错;其他值则以runner用户运行并允许可选覆盖。默认值为true。 |
RUNNER_NAME | Runner名称。覆盖RUNNER_NAME_PREFIX。 |
RUNNER_NAME_PREFIX | Runner名称前缀(完整名称生成方式见RANDOM_RUNNER_SUFFIX)。若提供RUNNER_NAME则被覆盖。默认值为github-runner。 |
RANDOM_RUNNER_SUFFIX | 是否使用随机Runner名称后缀的布尔值(前缀为RUNNER_NAME_PREFIX)。默认使用13字符随机字符串。若值非true,则尝试使用/etc/hostname内容,若文件不存在或为空则回退到随机字符串。若提供RUNNER_NAME则被覆盖。默认值为true。 |
ACCESS_TOKEN | 用于在容器启动时动态生成RUNNER_TOKEN的GitHub PAT。不使用此变量则需提供有效的RUNNER_TOKEN。 |
APP_ID | GitHub应用ID。必须与APP_PRIVATE_KEY配合使用,不应与ACCESS_TOKEN或RUNNER_TOKEN同时使用。 |
APP_PRIVATE_KEY | GitHub应用私钥。必须与APP_ID配合使用,不应与ACCESS_TOKEN或RUNNER_TOKEN同时使用。 |
APP_LOGIN | GitHub应用登录ID。可与APP_ID和APP_PRIVATE_KEY配合使用,当从REPO_URL或ORG_NAME提取的默认值不正确时使用。注意,当RUNNER_SCOPE为'enterprise'时无默认值。 |
RUNNER_SCOPE | Runner注册的作用域。有效值为repo、org和ent。对于'org'和'enterprise',需要ACCESS_TOKEN,无需REPO_URL。若为'org',需ORG_NAME;若为'ent',需ENTERPRISE_NAME。默认值为'repo'。 |
ORG_NAME | Runner注册的组织名称。要求RUNNER_SCOPE为'org'。无默认值。 |
ENTERPRISE_NAME | Runner注册的企业名称。要求RUNNER_SCOPE为'enterprise'。无默认值。 |
LABELS | 逗号分隔的标签字符串。默认值为'default'。 |
REPO_URL | 若使用非组织Runner,为注册的完整仓库URL,如'[***] |
RUNNER_TOKEN | 若不使用ACCESS_TOKEN的PAT,则为此通过Add Runner UI提供的Runner令牌(手动流程)。注意:此令牌生命周期短,会频繁变更。建议优先使用ACCESS_TOKEN。 |
RUNNER_WORKDIR | Runner工作目录。同一主机上的Runner不应共享此目录。默认值为'/_work'。为使容器操作能访问文件,此目录必须与绑定挂载卷的源路径匹配。 |
RUNNER_GROUP | Runner要加入的组名称(默认为默认Runner组)。 |
GITHUB_HOST | GitHub Enterprise服务器的可选URL,如github.mycompany.com。默认值为github.com。 |
DISABLE_AUTOMATIC_DEREGISTRATION | 禁用注销信号捕获的可选标志。默认值为false。除false外的任何值均视为true。详见此处。 |
CONFIGURED_ACTIONS_RUNNER_FILES_DIR | Runner数据使用的路径。可避免每次启动Runner时重新注册。无默认值。 |
EPHEMERAL | 使用--ephemeral选项配置Runner的可选标志。临时Runner适用于自动扩缩容。 |
DISABLE_AUTO_UPDATE | 禁用自动更新的可选环境变量。为保持过往行为,默认启用自动更新。任何值均视为真值并禁用自动更新。 |
START_DOCKER_SERVICE | 设为true时自动启动docker服务的可选标志。使用sysbox时有用。默认值为false。 |
NO_DEFAULT_LABELS | 禁用添加默认self-hosted、平台和架构标签的可选环境变量。任何值均视为真值并禁用默认标签。 |
DEBUG_ONLY | 仅打印调试输出而不执行实际注册或Runner命令的可选布尔值。用于CI和测试。默认值:false。 |
DEBUG_OUTPUT | 打印额外调试输出的可选布尔值。默认值:false。 |
UNSET_CONFIG_VARS | Runner设置完成后、启动前取消设置所有配置环境变量的可选标志。防止这些变量泄露到工作流环境中。设为'true'启用。为向后兼容,默认值为'false'。 |
测试使用goss编写通用断言。所有拉取请求需包含相关断言才能合并。
前提条件:确保已安装docker、goss和dgoss。注意:虽然本地测试可行,但GitHub Actions会测试所有操作系统变体和支持的架构。
测试文件期望待测试镜像通过环境变量GH_RUNNER_IMAGE指定,以辅助CI。
测试步骤:
bash$ # 需设置goss测试插值的最小变量 $ echo "os: ubuntu" >goss_vars.yaml $ echo "oscodename: focal" >>goss_vars.yaml $ echo "arch: x86_64" >>goss_vars.yaml $ docker build -t my-base-test -f Dockerfile.base . $ # 在最终镜像中使用基础镜像 $ sed -i.bak 's/^FROM.*/FROM my-base-test/g' Dockerfile $ docker build -t my-full-test -f Dockerfile . $ # 在当前git HEAD上测试Dockerfile.base的完整测试 $ GOSS_VARS=goss_vars.yaml GOSS_FILE=goss_full.yaml GOSS_SLEEP=1 dgoss run --entrypoint /usr/bin/sleep \ -e DEBUG_ONLY=true \ -e RUNNER_NAME=huzzah \ -e REPO_URL=[***] \ -e RUN_AS_ROOT=true \ -e RUNNER_NAME_PREFIX=asdf \ -e ACCESS_TOKEN=1234 \ -e APP_ID=5678 \ -e APP_PRIVATE_KEY=2345 \ -e APP_LOGIN=SOMETHING \ -e RUNNER_SCOPE=org \ -e ORG_NAME=myoung34 \ -e ENTERPRISE_NAME=emyoung34 \ -e LABELS=blue,green \ -e RUNNER_TOKEN=3456 \ -e RUNNER_WORKDIR=/tmp/a \ -e RUNNER_GROUP=wat \ -e GITHUB_HOST=github.example.com \ -e DISABLE_AUTOMATIC_DEREGISTRATION=true \ -e EPHEMERAL=true \ -e DISABLE_AUTO_UPDATE=true \ my-full-test 10
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429