Commit Graph

2 Commits

Author SHA1 Message Date
Matrix Music Bot Dev 6ec609b1ce perf(国内网络): runner 镜像加速配置 + Dockerfile cargo 镜像
按用户全选 4 个加速维度实施:

1. Docker 镜像加速(最大影响面)
   - scripts/setup-runner-mirrors.sh 写入 /etc/docker/daemon.json
   - registry-mirrors: docker.m.daocloud.io + ghcr.nju.edu.cn
   - 影响所有 docker pull:actions / base images / Gitea registry

2. crates.io 镜像
   - .cargo/config-docker.toml(与 .cargo/config.toml 区分,后者用于 Windows 本地开发)
   - rsproxy.cn 镜像(rustcc 维护,国内最稳)
   - Dockerfile COPY 此文件到 /root/.cargo/config.toml(在 cargo build 前)

3. GitHub git clone 加速
   - scripts/setup-runner-mirrors.sh 自动配置 git config --global
   - url.https://ghproxy.com/https://github.com.insteadOf https://github.com

4. 优先做 Docker 镜像加速(4 = 1 的子集,重复)

setup-runner-mirrors.sh 特性:
  - 自动备份原配置(.bak)
  - 用 python3 合并 daemon.json(保留用户已有配置)
  - 重启 docker 后验证 Registry Mirrors
  - 测试 hello-world pull 验证生效
  - --undo 回滚模式

镜像源选型理由:
  - docker.m.daocloud.io:DaoCloud 维护,最稳
  - ghcr.nju.edu.cn:NJU CTF 团队维护的 GitHub Container Registry 镜像
  - rsproxy.cn:rustcc 维护,sparse 协议兼容
  - ghproxy.com:通用 GitHub 镜像

使用方法(runner 上):
  sudo ./scripts/setup-runner-mirrors.sh
  sudo ./scripts/setup-runner-mirrors.sh --undo  # 回滚

下一步:处理 runner 缺 docker 能力的问题
2026-07-03 00:45:25 +08:00
Matrix Music Bot Dev a22d9578fb ci(perf): runner 本地预拉 action 镜像加速 Set up job
build-and-push-image / build-push (push) Has been cancelled
build-and-push-image / vulnerability-scan (push) Has been cancelled
问题:workflow "Set up job" 步骤非常缓慢
根因:每个 GitHub Actions step 都是 Docker 容器,需从 Docker Hub 拉镜像
      国内网络拉 Docker Hub 特别慢(甚至失败)

解决方案:
  scripts/prepull-actions.sh
    - 列出 build-image.yml 用到的所有 Docker 镜像
    - xargs -P 4 并行拉取
    - 提供验证命令 + cron 清理建议

更新 workflow 用的镜像列表:
  - docker/actions/setup-buildx:v3
  - docker/actions/login:v3
  - docker/actions/metadata:v5
  - docker/actions/build-push:v5
  - aquasec/trivy-action:master
  - moby/buildkit:v0.13.0

非 Docker action(actions/checkout / dtolnay/rust-toolchain / Swatinem/rust-cache)
是内置脚本,不需预拉。

README 新增"性能优化"章节:
  - 根因分析
  - 使用步骤
  - 清理策略 cron
  - 进一步优化建议(BuildKit cache / cargo 缓存 / 多架构)

使用方法:
  chmod +x scripts/prepull-actions.sh
  sudo ./scripts/prepull-actions.sh
2026-07-03 00:33:49 +08:00