File tree Expand file tree Collapse file tree 3 files changed +7
-8
lines changed
Expand file tree Collapse file tree 3 files changed +7
-8
lines changed Original file line number Diff line number Diff line change @@ -14,16 +14,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1414 && rm -rf /var/lib/apt/lists/*
1515
1616# 使用非 root 用户运行,避免 GitHub Actions Runner 报 "Must not run with sudo"
17- # UID/GID 1000 与常见宿主机首用户一致,挂载 runners 卷时权限更易匹配
18- # 基础镜像可能已有 GID 1000,先尝试创建组,失败则复用已有组
19- RUN (groupadd -g 1000 app 2>/dev/null || true) && useradd -r -u 1000 -g 1000 -d /app -s /bin/bash app
17+ # UID/GID 1001 挂载 runners 卷时可按需 chown
18+ RUN groupadd -g 1001 app && useradd -r -u 1001 -g app -d /app -s /bin/bash app
2019
2120WORKDIR /app
2221COPY --from=builder /app/runner-manager .
2322COPY --from=builder /app/config.yaml ./config.yaml
2423RUN mkdir -p /app/scripts /app/runners
2524COPY scripts/install-runner.sh /app/scripts/install-runner.sh
26- RUN chmod +x /app/scripts/install-runner.sh && chown -R 1000:1000 /app
25+ RUN chmod +x /app/scripts/install-runner.sh && chown -R app:app /app
2726
2827USER app
2928EXPOSE 8080
Original file line number Diff line number Diff line change 11# 基于 docs/docker.md 中「方式二:DinD」编排
22# 使用前请确保 config.yaml 中 runners.base_path 为 /app/runners
3- # 镜像以 UID 1000 运行,宿主机上请保证 ./runners 对该用户可写,例如:mkdir -p runners && chown 1000:1000 runners
3+ # 镜像以 UID 1001 运行,宿主机上请保证 ./runners 对该用户可写,例如:mkdir -p runners && chown 1001:1001 runners
44
55services :
66 runner-dind :
@@ -26,7 +26,7 @@ services:
2626 - " 8080:8080"
2727 volumes :
2828 - ./config.yaml:/app/config.yaml
29- - ./runners:/app/runners # 需对 UID 1000 可写,见顶部注释
29+ - ./runners:/app/runners # 需对 UID 1001 可写,见顶部注释
3030 networks :
3131 - runner-net
3232 restart : unless-stopped
Original file line number Diff line number Diff line change 11# Docker 部署
22
33- ** 基础镜像** :运行时使用 ** Ubuntu** (非 Alpine),避免 GitHub Runner 在 Alpine 下运行异常。
4- - ** 非 root 运行** :镜像内以 UID 1000 (用户 ` app ` )运行,避免 GitHub Actions Runner 报错「Must not run with sudo」。挂载 ` runners ` 目录时,请确保宿主机上该目录对 UID 1000 可写(常见做法:` mkdir runners && chown 1000:1000 runners ` );若你自定义为 root 运行容器,需设置环境变量 ` RUNNER_ALLOW_RUNASROOT=1 ` 。
4+ - ** 非 root 运行** :镜像内以 UID 1001 (用户 ` app ` )运行,避免 GitHub Actions Runner 报错「Must not run with sudo」。挂载 ` runners ` 目录时,请确保宿主机上该目录对 UID 1001 可写(常见做法:` mkdir runners && chown 1001:1001 runners ` );若你自定义为 root 运行容器,需设置环境变量 ` RUNNER_ALLOW_RUNASROOT=1 ` 。
55- ** 自动拉起 Runner** :服务启动约 15 秒后会自动启动所有「已注册但未在运行」的 Runner;定时任务每 5 分钟也会再次检查并拉起未运行的已注册 Runner,便于 DinD 或管理器重启后恢复。
66
77## 使用已发布镜像(推荐)
@@ -29,7 +29,7 @@ docker run -d --name runner-manager \
2929
3030- ** ` -p 8080:8080 ` ** :宿主机端口映射,保证能从本机访问管理界面。
3131- ** ` -v $(pwd)/config.yaml:/app/config.yaml ` ** :挂载配置文件,修改后重启容器即可生效;不挂载则使用镜像内默认配置,无法持久化。
32- - ** ` -v $(pwd)/runners:/app/runners ` ** :挂载 Runner 安装目录,Runner 二进制与注册信息都保存在此;不挂载则容器删除后所有 Runner 丢失。镜像以 UID 1000 运行,宿主机上请保证该目录对 UID 1000 可写(例如 ` chown 1000:1000 runners ` )。若需界面「GitHub 显示」状态检查,请在各自 runner 子目录(如 ` runners/xxx/ ` )下放置 ` .github_check_token ` 文件。
32+ - ** ` -v $(pwd)/runners:/app/runners ` ** :挂载 Runner 安装目录,Runner 二进制与注册信息都保存在此;不挂载则容器删除后所有 Runner 丢失。镜像以 UID 1001 运行,宿主机上请保证该目录对 UID 1001 可写(例如 ` chown 1001:1001 runners ` )。若需界面「GitHub 显示」状态检查,请在各自 runner 子目录(如 ` runners/xxx/ ` )下放置 ` .github_check_token ` 文件。
3333- 镜像内工作目录为 ` /app ` ,` -config ` 默认为 ` /app/config.yaml ` 。` config.yaml ` 中 ` runners.base_path ` 需为 ` /app/runners ` (或与挂载路径一致)。
3434
3535### 前台调试(带 -it)
You can’t perform that action at this time.
0 commit comments