
此镜像用于运行https://help.github.com/en/actions/automating-your-workflow-with-github-actions/hosting-your-own-runners%EF%BC%8C%E6%94%AF%E6%8C%81Docker-in-Docker%E5%8A%9F%E8%83%BD%EF%BC%8C%E5%8F%AF%E5%9C%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E4%B8%8A%E6%89%A7%E8%A1%8CGitHub Actions工作流,提供灵活的配置选项和多平台支持。
详细使用说明请参见https://github.com/myoung34/docker-github-actions-runner/wiki/Usage%E3%80%82 贡献前请阅读https://github.com/myoung34/docker-github-actions-runner/blob/master/CONTRIBUTING.md%E3%80%82
尽管本项目与上游软件并非完全一致,但包含的软件包等信息可在https://github.com/myoung34/docker-github-actions-runner/blob/master/build/config.json%E6%9F%A5%E7%9C%8B%E3%80%82%E7%9B%B8%E5%85%B3%E6%96%87%E6%A1%A3%E8%AF%B7%E5%8F%82%E8%A7%81https://github.com/myoung34/docker-github-actions-runner/wiki/Usage#modifications%E3%80%82
已知环境变量存在被窃取的风险。如果使用此Runner,请确保所有工作流变更都通过验证流程(在Actions设置中)进行管控,以防止***PR窃取这些变量。
请注意,尽管此Runner安装并允许使用Docker,但GitHub Actions本身尚不支持在自托管Runner中使用Docker。更多信息:
此外,部分GitHub Actions工作流功能(如https://docs.github.com/en/actions/guides/about-service-containers%EF%BC%89%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%EF%BC%8Chttps://github.com/myoung34/docker-github-actions-runner/issues/61%E3%80%82
当前Runnerhttps://github.com/actions/runner/issues/1265。
| 容器基础 | 支持架构 | 标签正则表达式 | Docker标签 | 描述 | 备注 |
|---|---|---|---|---|---|
| ubuntu focal | x86_64,arm64 | /\d\.\d{3}\.\d+/ /\d\.\d{3}\.\d+-ubuntu-focal/ | https://hub.docker.com/r/myoung34/github-runner/tags?page=1&name=latest https://hub.docker.com/r/myoung34/github-runner/tags?page=1&name=ubuntu-focal | 最新构建版本(每晚重建,主分支合并时也会重建)。包含不带操作系统名称的标签和带-ubuntu-focal的标签,基于https://github.com/actions/runner/tags%E5%88%9B%E5%BB%BA%E3%80%82 | |
| ubuntu noble | x86_64,arm64 | /\d\.\d{3}\.\d+-ubuntu-noble/ | https://hub.docker.com/r/myoung34/github-runner/tags?page=1&name=ubuntu-noble | 基于noble的最新构建版本(每晚重建,主分支合并时也会重建)。包含带-ubuntu-noble的标签,基于https://github.com/actions/runner/tags%E5%88%9B%E5%BB%BA%E3%80%82 | |
| ubuntu jammy | x86_64,arm64 | /\d\.\d{3}\.\d+-ubuntu-jammy/ | https://hub.docker.com/r/myoung34/github-runner/tags?page=1&name=ubuntu-jammy | 基于jammy的最新构建版本(每晚重建,主分支合并时也会重建)。包含带-ubuntu-jammy的标签,基于https://github.com/actions/runner/tags%E5%88%9B%E5%BB%BA%E3%80%82 | 在20.04LTS主机中运行jammy存在https://github.com/myoung34/docker-github-actions-runner/issues/219%EF%BC%8C%E5%9B%A0%E6%AD%A4%E6%9C%AA%E8%AE%BE%E4%B8%BA%60latest%60%E3%80%82 |
| debian buster(已弃用) | x86_64,arm64 | /\d\.\d{3}\.\d+-debian-buster/ | https://hub.docker.com/r/myoung34/github-runner/tags?page=1&name=debian-buster | Debian buster已弃用。arm v7的软件包不稳定,经常导致构建失败(如git和liblttng-ust#)。包含带-debian-buster的标签,基于https://github.com/actions/runner/tags%E5%88%9B%E5%BB%BA%E3%80%82 | |
| debian bookworm | x86_64,arm64 | /\d\.\d{3}\.\d+-debian-bookworm/ | https://hub.docker.com/r/myoung34/github-runner/tags?page=1&name=debian-bookworm | 基于bookworm的最新构建版本(每晚重建,主分支合并时也会重建)。包含带-debian-bookworm的标签,基于https://github.com/actions/runner/tags%E5%88%9B%E5%BB%BA%E3%80%82 | |
| debian sid | x86_64,arm64 | /\d\.\d{3}\.\d+-debian-sid/ | https://hub.docker.com/r/myoung34/github-runner/tags?page=1&name=debian-sid | 基于sid的最新构建版本(每晚重建,主分支合并时也会重建)。包含带-debian-sid的标签,基于https://github.com/actions/runner/tags%E5%88%9B%E5%BB%BA%E3%80%82 |
这些容器通过GitHub Actions构建,https://github.com/myoung34/docker-github-actions-runner/blob/master/.github/workflows/deploy.yml#L47%E5%B9%B6%E4%BF%AE%E6%94%B9%60FROM%60%E6%8C%87%E4%BB%A4%E4%BB%A5%E7%AE%80%E5%8C%96%E6%9E%84%E5%BB%BA%E8%BF%87%E7%A8%8B%E3%80%82
| 环境变量 | 描述 |
|---|---|
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的https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token%E3%80%82%E4%B8%8D%E4%BD%BF%E7%94%A8%E6%AD%A4%E5%8F%98%E9%87%8F%E5%88%99%E9%9C%80%E6%8F%90%E4%BE%9B%E6%9C%89%E6%95%88%E7%9A%84%60RUNNER_TOKEN%60%E3%80%82 |
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,如'https://github.com/myoung34/repo'%E3%80%82 |
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。详见https://github.com/myoung34/docker-github-actions-runner/issues/94%E3%80%82 |
CONFIGURED_ACTIONS_RUNNER_FILES_DIR | Runner数据使用的路径。可避免每次启动Runner时重新注册。无默认值。 |
EPHEMERAL | 使用https://docs.github.com/en/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners#using-ephemeral-runners-for-autoscaling%E9%85%8D%E7%BD%AERunner%E7%9A%84%E5%8F%AF%E9%80%89%E6%A0%87%E5%BF%97%E3%80%82%E4%B8%B4%E6%97%B6Runner%E9%80%82%E7%94%A8%E4%BA%8E%E8%87%AA%E5%8A%A8%E6%89%A9%E7%BC%A9%E5%AE%B9%E3%80%82 |
DISABLE_AUTO_UPDATE | 禁用自动更新的可选环境变量。为保持过往行为,默认启用自动更新。任何值均视为真值并禁用自动更新。 |
START_DOCKER_SERVICE | 设为true时自动启动docker服务的可选标志。使用https://github.com/nestybox/sysbox%E6%97%B6%E6%9C%89%E7%94%A8%E3%80%82%E9%BB%98%E8%AE%A4%E5%80%BC%E4%B8%BA%60false%60%E3%80%82 |
NO_DEFAULT_LABELS | 禁用添加默认self-hosted、平台和架构标签的可选环境变量。任何值均视为真值并禁用默认标签。 |
DEBUG_ONLY | 仅打印调试输出而不执行实际注册或Runner命令的可选布尔值。用于CI和测试。默认值:false。 |
DEBUG_OUTPUT | 打印额外调试输出的可选布尔值。默认值:false。 |
UNSET_CONFIG_VARS | Runner设置完成后、启动前取消设置所有配置环境变量的可选标志。防止这些变量泄露到工作流环境中。设为'true'启用。为向后兼容,默认值为'false'。 |
测试使用https://github.com/goss-org/goss/%E7%BC%96%E5%86%99%E9%80%9A%E7%94%A8%E6%96%AD%E8%A8%80%E3%80%82%E6%89%80%E6%9C%89%E6%8B%89%E5%8F%96%E8%AF%B7%E6%B1%82%E9%9C%80%E5%8C%85%E5%90%AB%E7%9B%B8%E5%85%B3%E6%96%AD%E8%A8%80%E6%89%8D%E8%83%BD%E5%90%88%E5%B9%B6%E3%80%82
前提条件:确保已安装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=https://github.com/myoung34/docker-github-actions-runner \ -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 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务