2016-12-19 7 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 в этом каталоге, и построить 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 я использую? (или это могло быть что-то, что я забыл установить в Дженкинсе?)

ответ

1

Проблема была в том, что мне нужно было установить плагин Docker Pipeline в Jenkins.

0

Возможно, мне не хватает части кода, но где вы определяете докер? Если это полный скрипт Groovy, вы пытаетесь связать переменную, которая не объявлена ​​ничем, поэтому не странно, что она терпит неудачу, правильно?

Просто определить докер это то, что вы хотите, как:

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

И это будет по-крайней мере решить недостающее исключение имущества.

Всякий раз, когда мы видим, ошибка, как показано ниже:

groovy.lang.MissingPropertyException: No such property: 

Это означает, groovey сценарий не смог найти свойство упоминается пост двоеточие знак :, так что нам нужно либо определить пользователя определенную переменную/свойство или использовать правильный из API.

+0

Если вы прочитали урок, который я связал, он объясняет: «Плагин Workflow CloudBees Docker обеспечивает глобальную переменную docker, которая предлагает доступ к общим функциям Docker в сценариях рабочих процессов». – Pete

Смежные вопросы