Jenkins构建时Jenkinsfile中的docker命令无法执行

使用Docker,Jenkins构建项目的时候,Jenkinsfile中的docker语句执行报如下错误:

[Pipeline] }

[Pipeline] // dir

[Pipeline] }

[Pipeline] // stage

[Pipeline] stage

[Pipeline] { (Create Docker Image)

[Pipeline] dir

Running in /Users/larry/.jenkins/workspace/docker-jenkins-pipeline/RpcServerSample

[Pipeline] {

[Pipeline] }

[Pipeline] // dir

[Pipeline] }

[Pipeline] // stage

[Pipeline] }

[Pipeline] // node

[Pipeline] End of Pipeline

groovy.lang.MissingPropertyException: No such property: docker for class: groovy.lang.Binding

at groovy.lang.Binding.getVariable(Binding.java:63)

at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:224)

at org.kohsuke.groovy.sandbox.impl.Checker$4.call(Checker.java:241)

at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:238)

at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)

at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)

at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)

at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:24)

at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)

at WorkflowScript.run(WorkflowScript:12)

at ___cps.transform___(Native Method)

at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.get(PropertyishBlock.java:74)

at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)

at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.fixName(PropertyishBlock.java:66)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:497)

at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)

at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)

at com.cloudbees.groovy.cps.Next.step(Next.java:58)

at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154)

at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)

at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:33)

at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:30)

at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)

at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:30)

at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:163)

at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:324)

at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:78)

at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:236)

at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:224)

at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:63)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)

at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

其中Jenkinsfile内容如下:

node {

checkout scm

//env.PATH = "${tool 'Maven3'}/bin:${env.PATH}"

stage('Package') {

dir('RpcServerSample') {

sh 'mvn clean package -DskipTests'

}

}

stage('Create Docker Image') {

dir('RpcServerSample') {

docker.build("daocloud.io/suqun/docker-jenkins-pipeline:${env.BUILD_NUMBER}")

}

}

stage ('Run Application') {

try {

// Start database container here

// sh 'docker run -d --name db -p 8091-8093:8091-8093 -p 11210:11210 arungupta/oreilly-couchbase:latest'

// Run application using Docker image

// sh "DB=`docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' db`"

sh "docker run -d -p 9001:9001 daocloud.io/suqun/docker-jenkins-pipeline:${env.BUILD_NUMBER}"

// Run tests using Maven

//dir ('webapp') {

// sh 'mvn exec:java -DskipTests'

//}

} catch (error) {

} finally {

// Stop and remove database container here

//sh 'docker-compose stop db'

//sh 'docker-compose rm db'

}

}

stage('Run Tests') {

try {

dir('RpcServerSample') {

sh "mvn test"

docker.build("daocloud.io/suqun/docker-jenkins-pipeline:${env.BUILD_NUMBER}").push()

}

} catch (error) {

} finally {

junit '**/target/surefire-reports/*.xml'

}

}

}

报错语句是:docker.build("daocloud.io/suqun/docker-jenkins-pipeline:${env.BUILD_NUMBER}")

猜测是不是groovy的什么插件没装啊?

相关阅读:

这个效果是怎么实现的?

正则表达式的[] +

关于Core Java 实例代码的问题?这两个到底有什么区别?

在表单里的Tree控件,怎么给它赋defaultExpandedKeys,defaultSelectedKeys的初始值

java反射类中的Spring属性注入无效问题?请大神赐教,感激不尽……

前端想请教一下Java与数据库的一个问题!!

如何用脚本算出文件中特定列计算值的累积数?

iconfont 阿里巴巴矢量图标库下载问题

php如何在json里嵌套一个json

移动端调取本地图片的问题

关于JSON的一个问题

为什么用Beautifulsoup无法提取微博粉丝列表的page数

在服务器中部署node项目

javascript能不能调用浏览器的缩放功能

为啥web页面在pc端、移动端显示元素尺寸差特别大?有图

Hexo next主题 languages/zh-Hans.yml报错

nginx如何把静态形式的url重写为动态的?

js函数传参写法?

typecho的markdown代码标签是不是有问题?代码标签该如何使用!!!在线等

为什么点击按钮要放在函数之前才能执行?

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐