2016-12-19 81 views
0

我試圖按照這個tutorial創建一個簡單的碼頭環境,作爲我的jenkins管道構建的一部分。Jenkins碼頭管道錯誤

我試圖構建一對泊塢窗圖像就像我做我的maven構建之前的測試。目前,我有以下的常規我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" 
} 

我想在目錄中有「泊塢窗/神諭」泊塢窗構建外觀和調用Dockerfile在該目錄中,並構建泊塢窗圖像命名爲'甲骨文',併爲自由。目前,雖然它給我這個錯誤:

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中安裝的東西?)

回答

1

問題是我需要在Jenkins中安裝Docker Pipeline插件。

0

也許我錯過了代碼的一部分,但是你在哪裏定義了docker?如果這是完整的Groovy腳本,你試圖綁定一個沒有聲明的變量,所以它不會奇怪,它會失敗,對吧?

只要定義一個碼頭工人這就是你想要的東西,如:

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

,它會在-至少解決您丟失財物例外。

每當看到錯誤象下面這樣:

groovy.lang.MissingPropertyException: No such property: 

這意味着,groovey腳本沒能找到屬性中提到的後結腸登錄,所以我們需要可以定義用戶定義變量/屬性或從API中使用正確的變量。

+0

如果您閱讀我關聯的教程,它將解釋:「CloudBees Docker工作流程插件提供了一個全局變量碼頭工具,它可以訪問工作流腳本中的常見Docker功能。」 – Pete