Docker Github Actions 运行器
快速入门(示例和用法)
注意事项
安全性
众所周知,环境变量无法防止信息泄露。 如果您使用此运行器,请确保任何工作流程更改都经过验证过程(在 Actions 设置中),以防止恶意 PR 泄露这些信息。
Docker 支持
请注意,虽然此运行器安装并允许使用 Docker,但 Github Actions 本身尚不支持从自托管运行器使用 Docker。 更多信息请参阅:
此外,某些 GitHub Actions 工作流程功能,如 作业服务,将无法使用并且会导致错误。
Containerd 支持
目前运行器不支持 containerd
Docker 构建产物
容器基础 | 支持的架构 | 标签正则表达式 | Docker 标签 | 描述 | 备注 |
---|---|---|---|---|---|
ubuntu focal | x86_64 ,arm64 | /\d\.\d{3}\.\d+/ /\d\.\d{3}\.\d+-ubuntu-focal/ | latest ubuntu-focal | 这是最新构建(每晚重新构建并在 master 合并时更新)。包含无操作系统名称的标签。包含带有 -ubuntu-focal 的标签,基于 上游标签 创建。 | |
ubuntu noble | x86_64 ,arm64 | /\d\.\d{3}\.\d+-ubuntu-noble/ | ubuntu-noble | 这是来自 noble 的最新构建(每晚重新构建并在 master 合并时更新)。包含带有 -ubuntu-noble 的标签,基于 上游标签 创建。 | |
ubuntu jammy | x86_64 ,arm64 | /\d\.\d{3}\.\d+-ubuntu-jammy/ | ubuntu-jammy | 这是来自 jammy 的最新构建(每晚重新构建并在 master 合并时更新)。包含带有 -ubuntu-jammy 的标签,基于 上游标签 创建。 | 目前 在 20.04LTS 主机内部使用 jammy 存在问题,这就是为什么它不是 latest |
debian buster(现已弃用) | x86_64 ,arm64 | /\d\.\d{3}\.\d+-debian-buster/ | debian-buster | Debian buster 现已弃用。arm v7 的软件包处于变动状态,经常导致构建失败(git 以及 apt-key 和 liblttng-ust)。包含带有 -debian-buster 的标签,基于 上游标签 创建。 | |
debian bookworm | x86_64 ,arm64 | /\d\.\d{3}\.\d+-debian-bookworm/ | debian-bookworm | 这是来自 bookworm 的最新构建(每晚重新构建并在 master 合并时更新)。包含带有 -debian-bookworm 的标签,基于 上游标签 创建。 | |
debian sid | x86_64 ,arm64 | /\d\.\d{3}\.\d+-debian-sid/ | debian-sid | 这是来自 sid 的最新构建(每晚重新构建并在 master 合并时更新)。包含带有 -debian-sid 的标签,基于 上游标签 创建。 |
这些容器通过 Github actions 复制 dockerfile 构建,更改 FROM
并构建以提供简便性。
环境变量
环境变量 | 描述 |
---|---|
RUN_AS_ROOT | 是否以root身份运行的布尔值。如果为true :将以root身份运行。如果为True 且用户被覆盖,将会报错。如果为任何其他值,将以runner 用户身份运行并允许可选的覆盖。默认为true |
RUNNER_NAME | 要使用的运行器名称。优先于(覆盖)RUNNER_NAME_PREFIX |
RUNNER_NAME_PREFIX | 运行器名称的前缀(完整名称的生成方式见RANDOM_RUNNER_SUFFIX )。注意:如果提供了RUNNER_NAME ,将被覆盖。默认为github-runner |
RANDOM_RUNNER_SUFFIX | 是否使用随机运行器名称后缀的布尔值(前面是RUNNER_NAME_PREFIX )。默认情况下将使用13个字符的随机字符串。如果设置为true以外的值,将尝试使用/etc/hostname 的内容,如果该文件不存在或为空,则回退到随机字符串。注意:如果提供了RUNNER_NAME ,将被覆盖。默认为true |
ACCESS_TOKEN | 用于在容器启动时动态生成RUNNER_TOKEN 的GitHub个人访问令牌。不使用此项则需要有效的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。如果从REPO_URL 或ORG_NAME 提取的默认值不正确,可以与APP_ID 和APP_PRIVATE_KEY 配对使用。注意,当RUNNER_SCOPE 为'enterprise'时没有默认值 |
RUNNER_SCOPE | 运行器将注册的范围。有效值为repo 、org 和ent 。对于'org'和'enterprise',需要ACCESS_TOKEN ,REPO_URL 不是必需的。如果是'org',需要ORG_NAME ;如果是'ent',需要ENTERPRISE_NAME 。默认为'repo' |
ORG_NAME | 运行器注册的组织名称。需要RUNNER_SCOPE 为'org'。没有默认值 |
ENTERPRISE_NAME | 运行器注册的企业名称。需要RUNNER_SCOPE 为'enterprise'。没有默认值 |
LABELS | 表示标签的逗号分隔字符串。默认为'default' |
REPO_URL | 如果使用非组织运行器,这是要注册的完整仓库URL,如'https://github.com/myoung34/repo' |
RUNNER_TOKEN | 如果不使用ACCESS_TOKEN 的PAT,这将是由添加运行器UI提供的运行器令牌(手动过程)。注意:此令牌的有效期很短,会经常更改。推荐使用ACCESS_TOKEN |
RUNNER_WORKDIR | 运行器的工作目录。同一主机上的运行器不应共享此目录。默认为'/_work'。这必须与RUNNER_WORKDIR处绑定挂载卷的源路径匹配,以便容器操作可以访问文件 |
RUNNER_GROUP | 将此运行器添加到的运行器组的名称(默认为默认运行器组) |
GITHUB_HOST | GitHub Enterprise服务器的可选URL,例如github.mycompany.com。默认为github.com |
DISABLE_AUTOMATIC_DEREGISTRATION | 禁用信号捕获以进行注销的可选标志。默认为false 。除了精确的false 之外的任何值都被视为true 。详见此处 |
CONFIGURED_ACTIONS_RUNNER_FILES_DIR | 用于运行器数据的路径。它允许避免每次运行器启动时重新注册。没有默认值 |
EPHEMERAL | 配置运行器使用--ephemeral 选项的可选标志。临时运行器适用于自动缩放 |
DISABLE_AUTO_UPDATE | 禁用自动更新的可选环境变量。默认启用自动更新以保持过去的行为。任何值都被视为真值并将禁用它们 |
START_DOCKER_SERVICE | 如果设置为true ,自动启动docker服务的可选标志。在使用sysbox时很有用。默认为false |
NO_DEFAULT_LABELS | 禁用向运行器添加默认的self-hosted、平台和架构标签的可选环境变量。任何值都被视为真值并将禁用它们 |