构建并将Docker镜像发布到Nexus3

时间:2017-03-09 02:11:16

标签: docker jenkins maven-3 nexus3 docker-maven-plugin

新的nexus ..我们正在尝试自动化构建过程(构建docker镜像并将它们发布到Nexus3存储库)。我的要求是,我有一个使用docker build -t <imagename>:<version> .构建的图像现在我想发布这个docker使用Jenkins对nexus repo进行图像处理。

我有一个nexus repo和Jenkins Job配置了docker-maven插件我也提供了docker:push maven目标..不确定如何推送?我是否需要使用docker push <imagename>:<version>的shell脚本或者我在Jenkins CI工作中提到的步骤。

请帮帮我..

1 个答案:

答案 0 :(得分:2)

从这个问题尚不清楚您是否已设置Nexus Docker Registry或Nexus Maven存储库。您写的是“ Nexus Repo”,它表示Nexus Maven Repo。

如果您是指Nexus Maven存储库...

Docker将映像存储到Docker服务器中。它使用自己的协议连接到它。 Nexus是另一种范例,与原样不兼容。

Docker Maven插件的push目标将推送到远程Docker存储库,例如DockerHub或GitLab。这不同于将Maven工件“部署”到Nexus。

Docker允许使用.tardocker load文件的形式获取映像。 也许有人创建了某种“旅行车”,使maven可以“解析”您将其声明为依赖项的这些文件。 但是,下面的整个想法可能并不是真正可取的。正如我所说的,Maven和Docker的方法是不同的。

编辑::事实证明,somebody did是Nexus的创建者。 正如@masseyb指出的那样。但是在快速阅读之后,事实证明这只是一个普通的Docker注册表,仅与Nexus品牌捆绑在一起。我假设发布者询问了如何使用Nexus Maven 存储库来存储Docker映像。

如果您具有 Nexus Docker注册表 ...

然后您需要:

  • Set up D-M-P,使用Nexus中设置的凭据。
    我认为您也可以docker login来做到这一点;在运行Maven之前。
  • 将存储库ID设置为<name>的{​​{1}}中的前缀。
  • 然后<image>目标将推送到该存储库。

article about using multiple registries也可能派上用场。