使用 GitHub Actions 自动同步 Docker 镜像到 CNB
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
鲁飞
扫码关注公众号
扫码阅读
手机扫码阅读
文章主旨:介绍如何通过 GitHub Actions 与 skopeo 工具,将 Docker Hub 上的镜像自动化同步至 CNB(腾讯云原生构建平台),以提升镜像的访问速度与稳定性。
关键要点:
- 通过
.github/images.yml维护镜像列表,支持灵活配置。 - 使用 GitHub Actions 手动(选择镜像和版本)或自动(推送镜像列表变更)触发同步。
- 核心同步命令依赖
skopeo copy --all实现多平台镜像复制,需配置 DOCKERHUB 与 CNB 凭据。 - 同步完成后用户可通过
docker pull docker.cnb.cool/lufei/docker/...拉取镜像。 - 整个过程自动化、可复用、支持选择性构建与定制版本。
内容结构:
- 背景:Docker Hub 网络不稳定,之前用 CODING 同步但即将停服,故改用 CNB(同样腾讯出品,支持云原生构建)。
- 同步方案概览:通过
images.yml维护列表,手动/自动触发 GitHub Actions,使用 skopeo 同步,支持选择镜像和 tag。 - GitHub Actions 工作流详解:提供完整 YAML 配置(
docker-proxy.yml),包括触发条件(workflow_dispatch + push)、任务流程(checkout → 读取列表 → 逐镜像 skopeo copy),并输出通知链接。 - 触发机制:支持手动(选择镜像名和版本)与自动(
.github/images.yml更新时同步所有)。 - 镜像清单文件:示例
images:条目包括 image、tag、name。 - 核心同步逻辑:
skopeo copy --all保证多架构同步,凭据通过 GitHub Secrets 配置。同步后输出可拉取地址。 - 如何使用:手动触发步骤(选择镜像留空为同步所有,可指定 tag)与自动触发条件。提供拉取示例和网页查看方式。
- 安全配置:列出所需三个 Secrets:DOCKERHUB_USERNAME、DOCKERHUB_TOKEN、CNB_DOCKER_TOKEN,并说明 CNB 仓库默认即支持 Docker 制品。
- 总结:通过 GitHub Actions + skopeo + CNB 构建了可复用、自动化的多镜像同步工具链,提升镜像可用性与部署效率。
文章总结:本文提供了一套完整的、可复用的自动化镜像同步方案,从背景、配置到使用细节均有说明,适合需要将海外镜像同步至国内加速服务的开发者参考。
鲁飞
鲁飞
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
鲁飞的其他文章
如何获取指定CSDN博主的全部文章信息
本文说明了爬取 CSDN 作者文章的方法。
使用 COSCLI 快速迁移本地数据到 COS
在 GitHub 或者 Gitee 等其他地方“白嫖“存储难免会遇到无法访问的时候,例如前段时间 jsDelivr 就因为被 DNS 污染导致无法访问、Gitee 公开仓库私有...
MacOS 等机器配置 Docker 启用 Remote API
Docker 不仅可以通过本地命令行docker命令进行调用,还可以通过开启远程控制 API,使用 HTTP
Bitwarden Secrets Manager:简化 DevOps 的机密管理
Bitwarden Secrets Manager 为 DevOps 团队提供了一种更加安全、便捷的方式来管理和集成机密信息。
simps/mqtt:适用于 PHP 的 MQTT 协议解析和协程客户端
也许这是第一个支持 MQTT v5.0 协议的 PHP library…
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线