2017-01-17 51 views
0

我正在使用Jenkinsfile将码头图像推送到Jenkins构建管道插件中的本地码头注册表。在Jenkinsfile中将码头图像推送到注册表时出错

Image.push([tagname])

我有下面的代码的那一刻

stage('Initialise environment') { 
    checkout scm 
    db = docker.build('oracle', 'docker/oracle').run("-p 49160:22 -p 49161:1521") 
    wlp = docker.build('liberty', 'docker/liberty').run("-p 9080:9080 --link=${db.id}:oracle") 
    } 
    stage('Push image to registry') { 
     docker.withRegistry('https://localhost:5000') { 
      db.push() 
      wlp.push() 
     } 
    } 

它的失败的:我从阅读,你应该能够有一个可选的标记名推图像的文档了解首先按(),出现以下错误:

Failure: groovy.lang.MissingMethodException: No signature of method: static org.jenkinsci.plugins.docker.workflow.Docker.push() is applicable for argument types:() values: [] Possible solutions: use([Ljava.lang.Object;), use(java.util.List, groovy.lang.Closure), use(java.lang.Class, groovy.lang.Closure), dump(), is(java.lang.Object), each(groovy.lang.Closure)

有没有想法?

回答

0

好吧,我做了如下的变化,它似乎已经解决了这个问题:

dbImage = docker.build('oracle', 'docker/oracle') 
    db = dbImage.run("-p 49160:22 -p 49161:1521") 
    wlpImage = docker.build('liberty', 'docker/liberty') 
    wlp = wlpImage.run("-p 9080:9080 --link=${db.id}:oracle") 
    } 
    stage('Push image to registry') { 
     docker.withRegistry('https://localhost:5000') { 
      dbImage.push() 
      wlpImage.push() 
     } 
    } 

再次阅读该文档我现在可以看到的run()返回的句柄到正在运行的容器,而推()只能在build()返回的图像对象上调用

+0

该文档在哪里?我认为还不清楚返回哪些类型。 –

相关问题