如何通过Jenkinsfile将Docker映像推送到Nexus存储库?

时间:2019-10-02 10:56:35

标签: docker jenkins jenkins-pipeline devops nexus

我有一个Jenkinsfile管道,创建了3个docker映像/容器,如下所示:

stage('Build images')
{
    echo "workspace directory is ${workspace}"
    dir ("$workspace/build/virtuoso")
    {
      sh 'docker build -t virtuoso -f $WORKSPACE/build/virtuoso/Dockerfile .'
    }
    dir ("$workspace/build/wildfly")
    {
      sh 'docker build -t wildfly -f $WORKSPACE/build/wildfly/Dockerfile .'
    }
    dir ("$workspace/build/postgres")
    {
      sh 'docker build -t postgres -f $WORKSPACE/build/postgres/Dockerfile .'
    }
}

我需要将这3张图片推送到Nexus存储库管理器。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

解决方案是:

stage('Push Docker Images to Nexus Registry'){
sh 'docker login -u user -p password NexusDockerRegistryUrl'
sh 'docker push NexusDockerRegistryUrl/Imagename}'
sh 'docker rmi $(docker images --filter=reference="NexusDockerRegistryUrl/ImageName*" -q)'
sh 'docker logout NexusDockerRegistryUrl'
}

Jenkins管道中的上述阶段会将docekr映像推送到nexus docker注册表并删除现有映像。

谢谢