jenkinsdockerpipe道错误

我试图按照这个教程来创build一个简单的docker环境,作为我的jenkinspipe道构build的一部分。

我试图在做我的maven构build之前,像testing一样构build几个docker镜像。 目前我的Jenkinsfile有以下几个常规:

#!groovy node { stage 'Building docker env' def dbImage = docker.build('oracle', 'docker/oracle') def wlpImage = docker.build('liberty', 'docker/liberty') stage 'Running maven build' git url: 'https://mysite/myproject.git', branch: 'docker' def mvnHome = tool 'maven 3.3.9' sh "${mvnHome}/bin/mvn -B clean install" } 

我试图让docker build在目录“docker / oracle”中查找,然后在那个目录下调用Dockerfile,然后构build一个名为“oracle”的docker镜像。 目前,虽然它给了我这个错误:

 Running on master in /root/.jenkins/workspace/pipeline_test [Pipeline] { [Pipeline] stage (Building docker env) Using the 'stage' step without a block argument is deprecated Entering stage Building docker env Proceeding [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 com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:28) at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20) ... 

任何想法可能是我用的docker.build命令的问题? (或者可能是我忘了在Jenkins中安装的东西?)

问题是我需要在Jenkins中安装Docker Pipeline插件。

也许我错过了你的代码的一部分,但你在哪里定义docker? 如果这是完整的Groovy脚本,你试图绑定一个没有声明任何东西的variables,所以它不会奇怪,它会失败,对吧?

只要定义一个泊坞窗,就是你想要的,就像:

 def docker = "my docker" // something similar like this 

它至less可以解决你遗漏的财产exception。

每当我们看到如下的错误:

 groovy.lang.MissingPropertyException: No such property: 

这意味着,groovey脚本无法find冒号后面提到的属性,所以我们需要定义用户定义的variables/属性或者使用API​​中正确的属性。