logo
0
0
WeChat Login

Docker 镜像和 Helm Chart 同步工具

一个基于 Skopeo 和 Helm 的同步工具,支持 Docker 镜像多架构批量同步和 Helm Chart 的同步转换。

🚀 功能特性

Docker 镜像同步

  • 多架构支持 - 支持 amd64、arm64、arm、386、ppc64le、s390x、mips64le 等架构
  • 智能架构检测 - 自动检测源镜像支持的架构,避免无效同步
  • 灵活同步模式 - 支持指定架构的精确同步
  • 安全策略 - 内置 insecure-policy 支持,适配各种镜像仓库
  • 错误处理 - 完善的错误检测和提示机制
  • 自定义镜像 - 提供定制化的 Skopeo 运行环境

Helm Chart 同步

  • OCI 格式支持 - 支持从 OCI 仓库拉取和推送 Chart
  • 传统仓库支持 - 支持从传统 Helm 仓库拉取 Chart
  • 自动版本识别 - 自动解析 Chart 版本信息
  • 批量同步 - 支持一次性同步多个 Chart
  • 完整报告 - 生成详细的同步结果报告

📋 项目结构

docker-images-chrom/ ├── docker-build.sh # Docker 镜像同步脚本(单个镜像) ├── image-sync.sh # Docker 镜像批量同步脚本 ├── helm-build.sh # Helm Chart 同步脚本(单个 Chart) ├── helm-sync.sh # Helm Chart 批量同步脚本 ├── Dockerfile # 定制的 Skopeo + Helm 镜像构建文件 ├── .cnb.yml # 流水线配置文件 ├── .cnb/ # 流水线触发器配置 │ ├── web_trigger.yml │ ├── api_trigger.yml │ └── ISSUE_TEMPLATE/ │ ├── 1-image-sync.yml # Docker 镜像同步模板 │ └── 2-helm-sync.yml # Helm Chart 同步模板 └── README.md # 项目文档

🛠️ 使用方法

Docker 镜像同步

CNB 中手动触发构建

chrome 浏览器触发构建

issue 触发构建

issue列表页面,选择创建issue,使用 镜像同步模板,填写镜像地址和目标架构,点击提交,即可触发构建,构建结果和进度可直接在你提交的issue下查看。

参数说明

Docker 镜像同步参数:

  • IMAGE_URLimg: 源镜像地址(必需)
  • ARCHarch: 目标架构,可选值:
    • amd64 - x86 64位架构
    • arm64 - ARM 64位架构
    • riscv64 - RISC-V 64位架构
    • ppc64le - PowerPC 64位小端架构
    • s390x - IBM System z 架构
    • mips64le - MIPS 64位小端架构
    • loong64 - LoongArch 64位架构

Helm Chart 同步

CNB 中手动触发 Helm Chart 同步

在 CNB 流水线页面,选择 web_trigger_fourapi_trigger_four,设置以下参数:

type: helm chart: oci://registry-1.docker.io/bitnamicharts/nginx

或使用传统仓库格式:

type: helm chart: prometheus --repo https://prometheus-community.github.io/helm-charts

issue 触发 Helm Chart 同步

issue列表页面,选择创建issue,使用 Helm Chart 同步模板,填写 Chart 地址,点击提交,即可触发构建。

Helm Chart 参数说明

Helm Chart 同步参数:

  • type: 设置为 helm 表示同步 Helm Chart
  • chart: Chart 地址,支持以下格式:
    • OCI 格式(推荐): oci://registry-1.docker.io/bitnamicharts/nginx
    • 传统仓库格式: prometheus --repo https://prometheus-community.github.io/helm-charts

Helm Chart 使用示例

同步成功后,可以通过以下方式使用:

# 方法1: 直接从 OCI 仓库安装 helm install my-release oci://docker.cnb.cool/your-repo/chart-name:version # 方法2: 先拉取再安装 helm pull oci://docker.cnb.cool/your-repo/chart-name:version helm install my-release ./chart-name-version.tgz # 方法3: 查看 Chart 信息 helm show chart oci://docker.cnb.cool/your-repo/chart-name:version helm show values oci://docker.cnb.cool/your-repo/chart-name:version

🔧 功能详解

Docker 镜像架构检测机制

脚本会自动检测源镜像支持的架构:

  1. 使用 skopeo inspect --raw 获取镜像 manifest
  2. 解析多架构镜像的平台信息
  3. 过滤无效架构值(如 unknownnull
  4. 验证目标架构是否在支持列表中

Docker 镜像同步流程

Helm Chart 同步机制

Helm Chart 同步支持两种模式:

  1. OCI 格式同步

    • 直接从 OCI 兼容的仓库拉取 Chart
    • 支持 Docker Hub、GitHub Container Registry、Harbor 等
    • 推荐使用此格式,速度更快
  2. 传统仓库同步

    • 从传统 Helm 仓库拉取 Chart
    • 自动添加临时仓库,拉取后自动清理
    • 兼容性更好

Helm Chart 同步流程

📄 许可证

本项目采用 MIT 许可证。

🤝 贡献

欢迎提交 Issue 和 Pull Request 来改进这个项目!

🙏 致谢

感谢 CNB 平台的桥接支持 🙏


About

No description, topics, or website provided.
Language
Shell97.6%
Dockerfile2.4%