在 jenkins 上进行 dockerize 构建需要哪些插件或预安装?

sab*_*sab 1 jenkins docker jenkins-pipeline

在 jenkins 上进行 dockerize 构建需要哪些插件或预安装?我一直有这个愚蠢的堆栈!

WorkflowScript: 74: Expected a symbol @ line 74, column 15.
             docker.image('maven:3.3.3-jdk-8').inside("-v  $PWD:/data")     {
             ^

WorkflowScript: 74: "error" should have 1 arguments but has 2 arguments     instead. @ line 74, column 15.
             docker.image('maven:3.3.3-jdk-8').inside("-v  $PWD:/data") {
Run Code Online (Sandbox Code Playgroud)

编辑:我安装了 docker pipeline 插件

完整的詹金斯文件

stage('docker') {
       steps {
          checkout scm
          docker.image('maven:3.3.3-jdk-8').inside("-v  $PWD:/data") {
            writeFile file: 'settings.xml', text: "<settings><localRepository>${pwd()}/.m2repo</localRepository></settings>"
            sh 'mvn clean install'

          }
 }
Run Code Online (Sandbox Code Playgroud)

Lar*_*Cai 5

大多数脚本/声明式管道是混合的。

docker.image是脚本化管道,请参阅https://jenkins.io/doc/book/pipeline/docker/,因此它需要用script {}内部声明性管道包装。

这是两个工作示例,带有詹金斯奴隶dockerserver

脚本化管道

节点(“dockerserver”){
    阶段('码头工人'){
        docker.image('maven:3.3.3-jdk-8').inside("-v $PWD:/data") {
            writeFile 文件:'settings.xml',文本:“${pwd()}/.m2repo”
            嘘'ls'
        }
    }
}

声明式管道:

管道{
    代理{标签“dockerserver”}
    阶段{
        阶段('码头工人'){
            脚步 {
                脚本 {    
                    docker.image('maven:3.3.3-jdk-8').inside("-v $PWD:/data") {
                        writeFile 文件:'settings.xml',文本:“${pwd()}/.m2repo”
                        嘘'ls'
                    }
                }
            }
        }
    }
}