Skip to content

Docker 镜像同步工具

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

🚀 功能特性

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

📋 项目结构

docker-images-chrom-new/
├── docker-build.sh     # 主要的镜像同步脚本
├── Dockerfile          # 定制的 Skopeo 镜像构建文件
├── .cnb.yml           # 流水线配置文件
├── .cnb/              # 流水线触发器配置
│   ├── web_trigger.yml
│   └── api_trigger.yml
└── README.md          # 项目文档

🛠️ 使用方法

基本用法

CNB 中手动触发构建

image-20250821145750586

image-20250821145833545

chrome 浏览器触发构建

image-20250821145912263

参数说明

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

🔧 功能详解

架构检测机制

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

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

同步流程

mermaid
graph TD
    A[输入镜像URL和架构] --> B[检测镜像是否存在]
    B --> C[获取支持的架构列表]
    C --> D{验证目标架构}
    D -->|支持| E[同步指定架构]
    D -->|不支持| F[报错退出]
    E --> G[完成同步]

📄 许可证

本项目采用 MIT 许可证。

🤝 贡献

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

🙏 致谢

感谢 CNB 平台的桥接支持 🙏


作者:srebro | 运维小弟

版权:采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟

链接:可点击右上角分享此页面复制文章链接

上次更新时间:

最近更新

采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟