使用 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 构建了可复用、自动化的多镜像同步工具链,提升镜像可用性与部署效率。
文章总结:本文提供了一套完整的、可复用的自动化镜像同步方案,从背景、配置到使用细节均有说明,适合需要将海外镜像同步至国内加速服务的开发者参考。
鲁飞
鲁飞
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
鲁飞的其他文章
怎么分别给公司和个人项目设置 Git User?
从第一天使用 Git 开始,每个人都逃不过这个配置
GitHub Actions 真香系列之文档自动简繁体转换
GitHub Actions 是 GitHub 推出的 CI\x5cCD 服务,正式版推出后也没有尝试过,最近体验了一下。
GitHub Actions 真香系列之scp和ssh
虽然现在有 k8s 作为部署服务,但也有一部分的业务还是使用传统的方式,在服务器上使用 LNMP 进行部署 Web 站点。
对接腾讯云实时音视频(TRTC)云端录制
使用腾讯云TRTC的服务端的 REST API 实现云端录制。
PHP8正式版发布,带来了注解和JIT
PHP8 正式版已经发布,来看看都有哪些新特性
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线