使用 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 构建了可复用、自动化的多镜像同步工具链,提升镜像可用性与部署效率。
文章总结:本文提供了一套完整的、可复用的自动化镜像同步方案,从背景、配置到使用细节均有说明,适合需要将海外镜像同步至国内加速服务的开发者参考。
鲁飞
鲁飞
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
鲁飞的其他文章
为 Docsify 自动生成 RSS 订阅
为Docsify等静态站点自动生成RSS订阅
simps/mqtt v1.1.1 版本发布,支持 MQTT5 中的大部分 Property
在 MQTT 5.0 协议中增加了很多属性。不同的报文类型之间,属性也会不同,一共有 27 种属性。
MySQL 字符集与大小写敏感性解析
在 MySQL 数据库中,UTF-8 及其变体是最常用的字符集。
Think-Swoole如何设置Swoole提供的配置项
think-swoole 的文档极少,官方文档中也只是说了如何启动、热更新、连接池等配置
新注册的域名被微信拦截怎么处理?
前段时间新注册了一个域名,没有在微信测试访问,等用到的时候发现居然被微信拦截了...
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线