【问题标题】:Jenkins pipeline - groovy.lang.MissingPropertyException詹金斯管道 - groovy.lang.MissingPropertyException
【发布时间】:2020-01-08 17:58:05
【问题描述】:

我正在尝试在 Jenkins 中编写流水线脚本,因为我只想存储来自 Docker Repo 的图像名称,但在 Unix cmd 中代码正在运行,但在流水线脚本中,我收到如下错误:groovy.lang.MissingPropertyException: No such property: x for class: groovy.lang.Binding

def  Image_name="$(sudo docker images  | grep -e 'hello-world.*latest' | awk -v x=1 '{print $x}')"

echo $Image_name

【问题讨论】:

标签: docker jenkins jenkins-pipeline docker-swarm


【解决方案1】:

双引号字符串首先在 groovy 中进行插值。没有定义 $x groovy 变量,因此您收到此错误。

您可以使用单引号代替双引号,或者在双引号字符串中将美元符号转义为\$x

【讨论】:

  • 我仍然无法将值存储在变量中,请查看该代码阶段 ('image name') { steps{ script{ Image_name=sh 'sudo docker images | grep -e hello/hello_world.*latest|awk -v x=1 {\'print $x\'}' echo "image name is : ${Image_name}" } } } 当我在 image_name 上回显时,它打印为 null跨度>