3

nexus 的新手.. 我们正在尝试自动化构建过程(构建 docker 映像并将它们发布到 Nexus3 存储库).. 我的要求是,我docker build -t <imagename>:<version> .现在使用构建的映像我想使用 Jenkins 将此 docker 映像发布到 nexus 存储库。

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

请帮我..

4

1 回答 1

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 允许.tar使用docker load. 也许有人创建了某种“旅行车”,这种东西可以让 maven “解析”这些您将声明为依赖项的文件。但是整个想法可能并不真正可取。正如我所说,Maven 和 Docker 的方法是不同的。

编辑:所以事实证明有人这样做了——而且是 Nexus 的创造者。正如@masseyb 所指出的。但在快速阅读之后,事实证明它只是一个普通的 Docker 注册表,只是与 Nexus 打上品牌并捆绑在一起。我假设发帖人询问了如何使用 Nexus Maven存储库来存储 Docker 映像。

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

那么你需要:

  • 使用 Nexus 中设置的凭据设置DMP 。
    我想你也docker login可以这样;在运行 Maven 之前。
  • 将存储库 ID 设置<name><image>.
  • 然后push目标将推送到该存储库。

这篇关于使用多个注册表的文章也可能会派上用场。

于 2019-08-14T05:47:49.887 回答