我有一个詹金斯脚本化的管道作业。我想将docker inspect命令的输出传递给变量。然后,我想稍后在其他步骤中使用该变量。
以下是将显示Mac地址的命令。我希望此命令的输出存储在变量中。
docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
我已经尝试过了,但是对我没用。
output = sh(
returnStdout: true,
script: 'docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID'
)
谁能建议我这是什么问题,或者建议我以其他方式将输出存储在变量中。
答案 0 :(得分:4)
问题是您在脚本中使用了单引号,并且还用单引号将其引起来,因此Jenkins正在运行docker inspect --format=
,该操作不应返回任何内容。尝试用双引号包装脚本
output = sh(
returnStdout: true,
script: "docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID"
)