复制Nexus Repo到GitLab注册表



初始状态:

  • 包含多个项目的GitLab实例;
  • GitLab项目的管道依赖于许多二进制文件,包括Docker映像
  • 所有这些二进制文件和图像都存在于Nexus (NXRM3)的本地OSS实例中,以各种格式(docker, maven, raw等)的托管或组仓库或由该Nexus中的仓库代理的远程仓库中。
  • 目标状态:

  • GitLab和Nexus的内容以一种允许管道在琐碎修改后运行的方式转移到GitLab中,如将url从Nexus更改为GitLab二进制注册表。

挑战:

  • 比起使用Nexus REST API来"行走"的自定义应用/脚本,哪种自动化方法可能更有效(更少的编码、测试等)?通过Nexus,在GitLab中创建相应的注册表(使用GitLab API),从Nexus仓库中拉出所有工件,然后将它们推入创建的GitLab注册表?

注意:

  • 将Nexus repo类型正确映射到GitLab是一个单独的挑战。
  • 在GitLab中正确地复制Nexus的repo分类是一个单独的挑战。
  • 正确地将Nexus回购权限转移到GitLab是一个单独的挑战。

我建议创建一个脚本来做以下事情:

  1. 列出存储在上述Nexus实例的Docker repo中的Docker映像的脚本。

  2. 从上述docker格式的Nexus仓库中提取docker映像并将其推送到本地主机的docker注册表的脚本。

  3. 从本地Docker注册表中提取上述Docker映像并将其推送到上述GitLab项目的Docker注册表的脚本。

最新更新