Jenkins Pipeline:找不到Maven码头工人镜像的码头工人

我有一个运行良好的Jenkins管道,但它取决于JDK和maven安装的工具。过去很少有实例更改过这些JDK和maven工具的名称(例如Maven 3.6.2-> Maven 3.6.3,这会导致我的管道失败。

stage ("build") {
        withMaven(jdk: 'Java SE 8u221',maven: 'Maven 3.6.3',tempBinDir: '') {
            sh 'mvn clean package jib:dockerBuild verify'
        }
    }

我希望管道独立于所安装的工具。因此,我像下面那样重写了我的Jenkins管道,以提供maven的docker镜像(因为JDK与之捆绑在一起)

pipeline {
   agent {
        docker {
            image 'maven:3-alpine' 
            args '-v /root/.m2:/root/.m2' 
        }
    }

    stages {
        stage('Checkout') {

            steps {
                git branch: "master",url: "repo url",credentialsId: 'id'
            }
         }

          stage ("build") {
              steps {
                sh 'mvn clean package jib:dockerBuild verify'
              }
        }
    }
}

但是现在我遇到了一个错误Failed to execute goal com.google.cloud.tools:jib-maven-plugin:2.3.0:dockerBuild (default-cli) : Build to Docker daemon failed,perhaps you should make sure Docker is installed and you have correct privileges to run it

在我提供了maven docker映像之后,似乎看不到docker守护程序。

iCMS 回答:Jenkins Pipeline:找不到Maven码头工人镜像的码头工人

我确实通过在maven docker映像中添加docker代理来解决此问题

pipeline {
     agent any

    stages {

         stage('build Dockerfile') {

            steps {
                sh '''echo "FROM maven:3-alpine
                          RUN apk add --update docker openrc
                          RUN rc-update add docker boot" >/var/lib/jenkins/workspace/Dockerfile'''

            }
         }

         stage('run Dockerfile') {
             agent{
                 dockerfile {
                            filename '/var/lib/jenkins/workspace/Dockerfile'
                            args '--user root -v $HOME/.m2:/root/.m2  -v /var/run/docker.sock:/var/run/docker.sock'
                        }
             }

             steps {
                 sh 'docker version'
                 sh 'mvn -version'
                 sh 'java -version'
             }

         }

    }
}
本文链接:https://www.f2er.com/2288347.html

大家都在问