Reputation: 1274
New to nexus.. We are trying to automate build process (Build docker images and publish them to Nexus3 repository).. My requirement is, I have an image built using docker build -t <imagename>:<version> .
now I want to publish this docker image to nexus repo using Jenkins.
I have a nexus repo and Jenkins Job is configured with docker-maven plugin also I have provided docker:push
maven target.. Not sure how to push now? Do I need to use shell script with docker push <imagename>:<version>
or what steps I have to mention in Jenkins CI job.
Please help me..
Upvotes: 3
Views: 4175
Reputation: 46876
From the question it is not clear whether you have set up Nexus Docker Registry or Nexus Maven Repository. You wrote about "Nexus Repo", which implies Nexus Maven Repo.
Docker stores images into a Docker server. It connects to it using it's own protocol. Nexus is a different paradigm and not compatible as is.
Docker Maven Plugin's push
goal pushes to a remote Docker repository, e.g. DockerHub, or GitLab. That is different from "deploying" Maven artifacts to Nexus.
Docker allows to get an image in a form of a .tar
file using docker load
.
Maybe someone created some kind of "wagon", a thing that would to allow maven to "resolve" these files which you would declare as dependencies.
But the whole idea is probably not really advisable following. As I said, Maven and Docker's approaches are different.
Edit: So it turns out that somebody did - and it was the creators of Nexus. As pointed out by @masseyb. But after quick reading, it turns out that it's just a normal Docker registry, just branded and and bundled with Nexus. I assume that the poster asked about how to use Nexus Maven repository to store Docker images.
then you need to:
docker login
to that; before running Maven.<name>
of the <image>
.push
goal will then push to that repository.This article about using multiple registries may come handy, too.
Upvotes: 2