哪个插件或预安装需要在jenkins上建立dockerize?

时间:2017-09-22 23:21:47

标签: docker jenkins 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") {

编辑:我安装了docker管道插件

完整的jenkinsfile

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'

          }
 }

2 个答案:

答案 0 :(得分:2)

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

docker.image是脚本化管道,请参阅https://jenkins.io/doc/book/pipeline/docker/,因此需要在声明性管道中包含script {}

这是两个工作样本,jenkins slave dockerserver

脚本管道

node("dockerserver") {
    stage('docker') {
        docker.image('maven:3.3.3-jdk-8').inside("-v  $PWD:/data") {
            writeFile file: 'settings.xml', text: "${pwd()}/.m2repo"
            sh 'ls'
        }
    }
}

声明性管道:

pipeline {
    agent { label "dockerserver" }
    stages {
        stage('docker') {
            steps {
                script {    
                    docker.image('maven:3.3.3-jdk-8').inside("-v  $PWD:/data") {
                        writeFile file: 'settings.xml', text: "${pwd()}/.m2repo"
                        sh 'ls'
                    }
                }
            }
        }
    }
}

答案 1 :(得分:1)

您可以在issue JENKINS-44749

中看到类似的错误
  

似乎问题比我更深,但是因为Docker Pipeline插件也失败了,但是有以下消息:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 46: Expected a symbol @ line 46, column 25.
docker.image(‘node:7-alpine’).inside {
  

重新安装所有插件并将Jenkins更新为2.64后,原始错误消失了,但我仍然从上面的评论中得到错误。
  docker.image块中包裹script使其有效,但在之前不需要。

        steps {
            script {
                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'
                } 
            }
        }