主题
Docker 镜像同步工具
一个基于 Skopeo 的 Docker 镜像同步工具,支持多架构镜像的批量同步和转换。
- 项目地址: https://cnb.cool/srebro/docker-images-chrom
- 支持 CNB 流水线触发镜像同步
- 支持通过 chrom 浏览器插件实现镜像同步,请Fork 好友仓库
🚀 功能特性
- ✅ 多架构支持 - 支持 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 中手动触发构建
chrome 浏览器触发构建
参数说明
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位架构
🔧 功能详解
架构检测机制
脚本会自动检测源镜像支持的架构:
- 使用
skopeo inspect --raw
获取镜像 manifest - 解析多架构镜像的平台信息
- 过滤无效架构值(如
unknown
、null
) - 验证目标架构是否在支持列表中
同步流程
mermaid
graph TD
A[输入镜像URL和架构] --> B[检测镜像是否存在]
B --> C[获取支持的架构列表]
C --> D{验证目标架构}
D -->|支持| E[同步指定架构]
D -->|不支持| F[报错退出]
E --> G[完成同步]
📄 许可证
本项目采用 MIT 许可证。
🤝 贡献
欢迎提交 Issue 和 Pull Request 来改进这个项目!
🙏 致谢
感谢 CNB 平台的桥接支持 🙏