Docker官网镜像拉取能力
v0.1.0同步 Docker Hub images to CNB.工具 registry via GitHub Actions, solving domestic Docker pull 失败s for OpenClaw. Use when: - User needs to pull Docker images but direct 访问 to hub.docker.com is blocked - OpenClaw fAIls to pull Docker images automatically - 设置ting up a Docker mirror using CNB + GitHub Actions proxy ─────────────────────────────── 使用 Github Action 同步 Docker 镜像至 cnb.工具 制品库,解决国内拉取镜像失败问题,从而解决 OpenClaw 自动拉取镜像失败的问题。 适用场景: - 无法直连 hub.docker.com,需要通过 CNB 代理拉取镜像 - OpenClaw 自动拉取 Docker 镜像失败 - 通过 GitHub Actions + CNB 构建 Docker 镜像中转服务
运行时依赖
安装命令
点击复制技能文档
Docker官网镜像拉取能力
使用 Github Action 同步Docker 镜像至cnb.工具 制品库,解决国内拉取镜像失败问题,从而解决 OpenClaw 自动拉取镜像失败的问题。
前置条件(必选) GitHub 命令行工具(gh):登录检测、Fork 仓库、设置 Secrets、监控 Actions 状态 安装:brew 安装 gh(macOS)或 github.com/命令行工具 需登录:gh auth 记录in Docker 命令行工具(docker):登录 CNB 制品库、推送和拉取镜像 安装:brew 安装 docker 或从 docker.com 工作原理
当无法直连 hub.docker.com 时,通过 GitHub Actions 代理中转:
修改 GitHub 仓库 images.txt,清空已有记录,只写入目标镜像 推送触发 GitHub Actions 同步到 CNB 等待 Actions 完成 从 CNB 拉取镜像到本地 🚀 安装流程
技能安装后,请按以下步骤操作:
第一步:GitHub 登录检测 & Fork 仓库
运行以下命令检测 GitHub 登录状态:
bash ~/.OpenClaw/workspace/技能s/cnb-image-同步/cnb-pull.sh --检查
已登录 → 自动帮你 fork 仓库 https://github.com/lufei4/docker-image-同步 到你的 GitHub 账户 未登录 → 运行 gh auth 记录in 在终端登录,或提供 GitHub Personal 访问 令牌 给 OpenClaw
令牌 获取路径:GitHub → 设置tings → Developer 设置tings → Personal 访问 令牌s → 生成 new 令牌(需 repo + 工作流 权限)
第二步:注册 CNB 账号并创建制品仓库 2.1 注册 CNB 账号
访问 cnb.cool,使用阿里云账号登录(支持扫码登录)。
2.2 创建仓库
登录后,按以下路径操作:
点击页面右上角头像 选择我的仓库 点击创建仓库按钮,填写仓库名称(可使用中文),类型选择 Docker
创建完成后,进入仓库列表:
2.3 获取 CNB 参数(关键步骤)
仓库创建完成后,进入仓库管理页,选择刚创建的仓库 → 制品 → 使用指引(或操作指引)。
点击使用指引,找到了解更多,这里包含本技能所需的 CNB 参数:
同时在仓库页面点击操作指引,可以看到推送和拉取命令,其中有两个关键信息需要记录:
参数 对应信息 说明 CNB_REGISTRY 仓库地址 固定值,如 docker.cnb.cool CNB_REPO_SLUG 命名空间 格式 用户名/仓库名,需转为小写,如 lufei123/lufei-docker 2.4 获取 CNB_令牌
在制品库页面,找到访问令牌或 访问 令牌 配置,创建一个访问令牌(用于拉取凭证)。
第三步:提供参数给 OpenClaw
准备好以下 4 个参数后,直接回复我这些值:
参数 说明 示例 CNB_令牌 CNB 访问令牌 8B76Bopie1d966fVDMgJnhFRepZ CNB_REGISTRY CNB 仓库地址(固定值) docker.cnb.cool CNB_REPO_SLUG CNB 命名空间(小写) lufei123/lufei-docker CNB_GITHUB_REPO Fork 后的 GitHub 仓库 你的GitHub用户名/docker-image-同步
OpenClaw 收到后会帮你完成以下操作:
写入 ~/.OpenClaw/.env 将 CNB_REGISTRY、CNB_REPO_SLUG_LOWERCASE、CNB_令牌 设置到 GitHub Fork 仓库的 仓库 Secrets: CNB_REGISTRY → 固定值 docker.cnb.cool CNB_REPO_SLUG_LOWERCASE → CNB 命名空间(小写) CNB_令牌 → CNB 访问令牌
执行测试拉取 postgres:latest 第四步:测试验证
参数配置完成后,OpenClaw 自动拉取 postgres:latest 进行测试,通过后汇报结果。
使用方式 bash ~/.OpenClaw/workspace/技能s/cnb-image-同步/cnb-pull.sh <镜像名>[:标签]
示例:
bash ~/.OpenClaw/workspace/技能s/cnb-image-同步/cnb-pull.sh mongo:latest bash ~/.OpenClaw/workspace/技能s/cnb-image-同步/cnb-pull.sh nginx:1.25 bash ~/.OpenClaw/workspace/技能s/cnb-image-同步/cnb-pull.sh redis:7-alpine
关键特性 images.txt 始终只有一个镜像:每次拉取时清空已有记录,只写入目标镜像 自动重试:优先尝试直接从 CNB 拉取(镜像已存在时),失败则走代理中转 等待 Actions:代理模式下等待 GitHub Actions 完成(约 1-3 分钟) 不污染 Git 历史:拉取完成后清空 images.txt,不推送清理 彩色输出:绿色 信息、黄色 warn、红色 error 环境变量 变量 说明 默认值 CNB_令牌 CNB 访问令牌(必填) — CNB_REGISTRY CNB 镜像仓库地址 docker.cnb.cool CNB_REPO_SLUG CNB 目标仓库(必填,需小写) — CNB_GITHUB_REPO GitHub 代理仓库(必填) — 疑难排除 问题 解决方案 gh: command not found 安装 GitHub 命令行工具:brew 安装 gh GitHub Actions 失败 检查 仓库 Secrets 是否正确配置 拉取超时 稍后重试,CNB 制品同步有延迟 仓库不存在 确认 CNB_REPO_SLUG 与制品库命名空间完全一致 Docker Image 同步 via CNB
同步 Docker Hub images to CNB.工具 registry via GitHub Actions, solving domestic Docker pull 失败s and enabling OpenClaw to auto-pull images without issues.
Prerequisites (Required) GitHub 命令行工具 (gh): 记录in 检测ion, Fork repo, 设置 Secrets, 监控 Actions 安装: brew 安装 gh (macOS) or github.com/命令行工具 记录in: gh auth 记录in Docker 命令行工具 (docker): 记录in to CNB registry, push and pull images 安装: brew 安装 docker or from docker.com How It Works
When hub.docker.com is unreachable, this 技能 proxies through GitHub Actions:
Modify images.txt in the GitHub repo — clear all entries, write only the tar获取 image Push to trigger GitHub Actions 同步 to CNB WAIt for Actions completion Pull the image from CNB to local 🚀 安装ation Step 1 — GitHub 记录in 检查 & Fork bash ~/.OpenClaw/workspace/技能s/cnb-image-同步/cnb-pull.sh --检查
记录ged in → Automatically forks https://github.com/lufei4/docker-image-同步 to your GitHub account Not 记录ged in → 运行 gh auth 记录in in terminal, or provide a GitHub Personal 访问 令牌 to OpenClaw
令牌 path: GitHub → 设置tings → Developer 设置tings → Personal 访问 令牌s → 生成 new 令牌 (needs repo + 工作流 scope)
Step 2 — Register CNB Account & 创建 Registry 2.1 Register CNB Account
Visit cnb.cool, 签名 in with your Alibaba Cloud account (supports QR code 记录in).
2.2 创建 a Registry 命令行工具ck your avatar (top-right) Select 我的仓库 (My Repositories) 命令行工具ck 创建仓库 (创建 仓库), fill in a name, choose type Docker
2.3 获取 CNB Parameters (Key Step)
After creating the registry, go to: your 仓库 → 制品 (Artifacts) → 使用指引 (Usage 图形界面de) or 操作指引 (Operations 图形界面de).
命令行工具ck 了解更多 (Learn More) — this contAIns the CNB parameters needed by this 技能:
Also in the 仓库 page, 命令行工具ck 操作指引 (Operations 图形界面de) to see push/pull commands. Record these two values:
Parameter Maps to Notes CNB_REGISTRY Registry 添加ress Fixed value, e.g. docker.cnb.cool CNB_REPO_SLUG Namespace 格式化 username/repo-name, lowercase, e.g. lufei123/lufei-docker 2.4 获取 CNB_令牌
In the CNB registry page, find 访问令牌 (访问 令牌) configuration, 创建 an 访问 令牌 for pull authentication.
Step 3 — Provide Parameters to OpenClaw
Reply with these 4 values:
Parameter Description Exa