logo
0
0
Login
修复镜像合并命令参数顺序错误

Docker Image Synchronization Tool

这是一个自动化的 Docker 镜像同步工具,可以通过 Issue 触发,将源镜像同步到目标仓库,并支持多架构镜像的同步。

功能特性

  • 🔄 自动化镜像同步
  • 🏗️ 支持多架构镜像(如 linux/amd64, linux/arm64 等)
  • 🤖 通过 Issue 触发同步任务
  • 📝 自动更新同步进度和状态
  • 🔒 支持 Docker 仓库认证
  • 🎯 支持自定义目标仓库路径

工作流程

  1. 用户创建包含源镜像和目标镜像信息的 Issue
  2. 系统自动触发同步流程
  3. 拉取源镜像的所有架构版本
  4. 重新标记镜像并推送到目标仓库
  5. 创建多架构 manifest 并推送
  6. 自动更新同步进度并关闭 Issue

使用方法

1. 创建同步任务

创建一个新的 Issue,在描述中指定目标镜像信息:

## target registry.cn-chengdu.aliyuncs.com/synchro/alpine

Issue 标题填写源镜像名称,例如:alpine

2. 配置文件说明

项目使用 .cnb.yml 配置文件来定义自动化流程:

"$": issue.open: - name: 处理issue创建事件 services: - docker stages: - name: docker login script: docker login -u=username -p=password registry.example.com - name: docker sync script: ./scripts/sync.sh

3. 环境变量

工具依赖以下环境变量:

  • CNB_ISSUE_DESCRIPTION: Issue 描述内容
  • CNB_ISSUE_TITLE: Issue 标题
  • CNB_REPO_SLUG: 仓库标识
  • CNB_ISSUE_IID: Issue ID
  • CNB_TOKEN: API 认证令牌

项目结构

. ├── .cnb.yml # 自动化配置文件 └── scripts/ ├── event.sh # Issue 事件处理函数 ├── sync.sh # 同步任务入口脚本 └── synchronization.sh # 镜像同步核心实现

功能说明

synchronization.sh

  • 支持自动检测源镜像的支持架构
  • 为每个架构创建独立的镜像标签
  • 自动创建和推送多架构 manifest
  • 实时反馈同步进度

event.sh

  • 提供 Issue 评论功能
  • 支持自动关闭已完成的同步任务
  • 集成 API 调用功能

sync.sh

  • 解析 Issue 中的同步配置
  • 协调同步流程
  • 处理错误和异常情况

注意事项

  1. 确保 Docker 登录凭证配置正确
  2. 源镜像必须可以公开访问
  3. 目标仓库需要有足够的写入权限
  4. 建议在创建 Issue 时仔细检查镜像信息格式

贡献指南

欢迎提交 Issue 和 Pull Request 来改进这个工具。在提交代码前,请确保:

  1. 代码符合项目的编码规范
  2. 添加必要的注释和文档
  3. 测试所有功能正常工作

许可证

MIT License

About

No description, topics, or website provided.
Language
Shell66.3%
Markdown33.7%