
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该Docker镜像用于在自定义环境中运行GitHub Actions工作流,封装了GitHub Actions Runner核心组件,支持本地、私有环境或隔离网络中执行GitHub Actions作业,无需依赖GitHub官方托管的公共Runner。镜像提供标准化的Runner运行环境,简化自定义Runner的部署与管理,适用于CI/CD流水线集成、本地调试及安全合规场景。
repo 和 workflow 权限(创建路径:GitHub账号 → Settings → Developer settings → Personal access tokens → Generate new token)从Docker Registry拉取镜像(以镜像名称github-actions-runner为例,实际需替换为具体镜像源):
bashdocker pull [镜像源地址]/github-actions-runner:latest
若使用私有仓库,需先登录:
docker login [私有仓库地址]
4.3.1 快速启动(docker run)
通过docker run命令启动Runner,核心参数包括环境变量(认证与配置)和数据卷(持久化配置):
bashdocker run -d \ --name github-runner \ -e GITHUB_REPOSITORY="owner/repo" \ # 目标仓库(格式:用户名/仓库名) -e GITHUB_TOKEN="ghp_xxx" \ # GitHub PAT(需repo、workflow权限) -e RUNNER_NAME="my-local-runner" \ # Runner名称(自定义) -e RUNNER_LABELS="local,linux,x64" \ # Runner标签(用于工作流选择,逗号分隔) -v /path/on/host/runner-data:/runner \ # 挂载Runner配置目录(持久化注册信息) --restart unless-stopped \ # 异常退出后自动重启 [镜像源地址]/github-actions-runner:latest
4.3.2 查看Runner状态
docker ps | grep github-runnerdocker logs -f github-runner(可查看注册过程、作业执行日志)镜像通过环境变量控制Runner行为,以下为核心变量说明:
| 环境变量名 | 必选 | 描述 | 示例值 |
|---|---|---|---|
GITHUB_REPOSITORY | 是 | 目标GitHub仓库(格式:owner/repo,支持组织级Runner:org/组织名) | my-org/my-project |
GITHUB_TOKEN | 是 | GitHub Personal Access Token,用于注册Runner | ghp_Abc123...(需保密) |
RUNNER_NAME | 否 | Runner名称,默认自动生成(runner-{随机字符串}) | prod-runner-01 |
RUNNER_LABELS | 否 | Runner标签(逗号分隔),用于工作流runs-on字段匹配 | local,arm64,high-memory |
RUNNER_WORKDIR | 否 | 作业执行工作目录,默认/_work | /custom-workdir |
RUNNER_GROUP | 否 | Runner所属组(仅组织级Runner需配置) | production-runners |
HTTP_PROXY/HTTPS_PROXY | 否 | 网络代理配置(适用于隔离环境) | http://proxy:8080 |
NO_PROXY | 否 | 不经过代理的域名/IP(逗号分隔) | github.com,192.168.1.0/24 |
通过docker-compose.yml管理Runner部署,支持多实例、依赖管理等场景:
yamlversion: '3.8' services: github-runner: image: [镜像源地址]/github-actions-runner:latest container_name: github-runner restart: unless-stopped environment: - GITHUB_REPOSITORY=my-org/my-project - GITHUB_TOKEN=${GITHUB_TOKEN} # 建议通过宿主机环境变量传入,避免硬编码 - RUNNER_NAME=staging-runner - RUNNER_LABELS=staging,linux,x64 - RUNNER_WORKDIR=/workspace - HTTP_PROXY=http://proxy:8080 volumes: - ./runner-data:/runner # 持久化Runner配置(注册信息、证书等) - ./workspace:/workspace # 挂载自定义工作目录(可选) deploy: resources: limits: cpus: '2' # 限制CPU核心数 memory: 4G # 限制内存使用
启动命令:GITHUB_TOKEN=ghp_xxx docker-compose up -d
4.6.1 持久化与数据管理
-v /host/path:/runner挂载/runner目录,持久化Runner注册信息(避免容器重建后需重新注册)。RUNNER_WORKDIR指定作业执行目录,建议挂载宿主机目录(如-v /host/workdir:/workspace),避免容器内存储满导致作业失败。4.6.2 组织级Runner部署
支持为GitHub组织注册Runner(所有仓库共享),需修改GITHUB_REPOSITORY为组织名(格式:org/组织名),并确保GITHUB_TOKEN具备admin:org权限:
bashdocker run -d \ -e GITHUB_REPOSITORY="org/my-company" \ # 组织级Runner -e GITHUB_TOKEN="ghp_xxx" \ # 需admin:org权限 -e RUNNER_GROUP="shared-runners" \ # 组织Runner组 -v /host/runner-data:/runner \ [镜像源地址]/github-actions-runner:latest
除环境变量外,可通过命令行参数或挂载配置文件调整高级行为(需镜像支持):
docker run命令传递)--unattended:非交互式模式(默认启用,适合容器环境)--ephemeral:临时Runner(作业完成后自动注销,避免资源占用),需镜像支持EPHEMERAL_RUNNER=true环境变量--replace:替换同名Runner(若已存在同名Runner,先注销再注册)如需覆盖默认启动脚本(如添加前置初始化步骤),可通过--entrypoint指定自定义脚本:
bashdocker run -d \ --entrypoint /custom-entrypoint.sh \ -v ./custom-entrypoint.sh:/custom-entrypoint.sh \ ... # 其他参数
GITHUB_TOKEN需严格保密,禁止硬编码到脚本或镜像中,建议通过Docker Secrets、Kubernetes Secrets或CI/CD平台的环境变量管理(如GitHub Actions Secrets、GitLab CI Variables)。--cpus 2 --memory 4g),避免Runner占用过多宿主机资源。--network host或自定义Docker网络实现网络打通。GITHUB_TOKEN权限(需repo和workflow权限)、GITHUB_REPOSITORY格式是否正确、网络是否可访问api.github.com。docker logs <容器名>),检查作业步骤输出;确认Runner标签与工作流runs-on匹配。/runner目录,重新启动容器(会重新注册Runner,原Runner需手动在GitHub上移除)。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务