我有一个脚本化的詹金斯文件:
node{
build_id = env.BUILD_ID
stage("Clone") {
checkout scm
}
stage("Build"){
def docker_image = docker.build("articlestream:${env.BUILD_ID}")
}
stage("test"){
// we should do testing here in the future
}
stage("Docker Push"){
//our Registry
docker.withRegistry("https://localhost:4000", "docker-registry-credentials") {
docker_image.push("latest")
}
}
}
我期望在def docker_image
阶段可以访问"Docker Push"
。但是,出现以下错误:
groovy.lang.MissingPropertyException: No such property: docker_image for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:270)
at org.kohsuke.groovy.sandbox.impl.Checker$6.call(Checker.java:291)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:295)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:271)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:271)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:271)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:29)
at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
at WorkflowScript.run(WorkflowScript:17)
这表明docker_image在此阶段不是变量。我可以确定docker在构建阶段正在构建映像(已检查日志),有人可以帮我改写docker_image.push("latest")
行,以便我进行推送吗?