使用 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 构建了可复用、自动化的多镜像同步工具链,提升镜像可用性与部署效率。
文章总结:本文提供了一套完整的、可复用的自动化镜像同步方案,从背景、配置到使用细节均有说明,适合需要将海外镜像同步至国内加速服务的开发者参考。
鲁飞
鲁飞
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
鲁飞的其他文章
MQTT 怎么在单独一个端口上分别使用 v3.x 和 v5.0 协议解析?
在 1883 端口上,同时处理 v3.1、v3.1.1 和 v5.0 这 3 种协议等级
MacOS 等机器配置 Docker 启用 Remote API
Docker 不仅可以通过本地命令行docker命令进行调用,还可以通过开启远程控制 API,使用 HTTP
怎么复用 GitHub Actions 的 Workflows
使工作流程可重复使用,而不是从一个工作流程复制并粘贴到另一个工作流程。 自己和有权访问可重用工作流程的任何人都可以从另一个工作流程调用可重用工作流程。
使用Composer Scripts为依赖进行瘦身
常见的 SDK 都会将所有功能都集成在一个代码库中,本文以腾讯云开发者工具套件(SDK)3.0 为例。
PHPMQTT v1.4.1 版本发布,新增协议调试工具
PHPMQTT v1.4.1 版本发布,在此版本中主要是新增了一个协议调试工具。
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线