Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Jenkins管道groovy字符串比较_Docker_Jenkins_Groovy_Jenkins Pipeline - Fatal编程技术网

Docker Jenkins管道groovy字符串比较

Docker Jenkins管道groovy字符串比较,docker,jenkins,groovy,jenkins-pipeline,Docker,Jenkins,Groovy,Jenkins Pipeline,当我将Jenkins pipeline through与Docker一起使用时,我想将字符串值与Groovy脚本进行比较,但比较结果是错误的,下面的脚本是我的Groovy脚本和输出结果: 有人能告诉我如何解决这个问题吗 String runningContainerId = sh(script: "docker ps --filter=\"name=${appEnv}-${env.JOB_NAME}-${env.BUILD_NUMBER}\" -q | xargs", returnStdout:

当我将Jenkins pipeline through与Docker一起使用时,我想将字符串值与Groovy脚本进行比较,但比较结果是错误的,下面的脚本是我的Groovy脚本和输出结果:

有人能告诉我如何解决这个问题吗

String runningContainerId = sh(script: "docker ps --filter=\"name=${appEnv}-${env.JOB_NAME}-${env.BUILD_NUMBER}\" -q | xargs", returnStdout: true)
//def runningImageId = sh(script: "docker images | grep ${appEnv}-${env.JOB_NAME}:${env.BUILD_NUMBER} | tr -s ' ' | cut -d ' ' -f 3 ", returnStdout: true)

println 'current container:' + runningContainerId
//println runningImageId
try{
def ret = sh(script: "docker ps --filter=\"name=${appEnv}-${env.JOB_NAME}\" -q | xargs", returnStdout: true)
def splitStr = ret.tokenize(" ")
println 'splitStr=>' + splitStr
String containerId = runningContainerId
println 'containerId=>' + containerId

for( String str in splitStr) {
    print str == containerId
    print 'str=>' + str
     if ( str == containerId) {
        print 'same string:' + str 
     } else {
        print 'different string:' + str
     }
}
詹金斯的输出结果是:

splitStr=>[8abe81071b7f, 40e2292d5099, 4136bbdf9cc5]
[Pipeline] echo
containerId=>8abe81071b7f

[Pipeline] echo
false
[Pipeline] echo
str=>8abe81071b7f
[Pipeline] echo
different string:8abe81071b7f
[Pipeline] echo
false
[Pipeline] echo
str=>40e2292d5099
[Pipeline] echo
different string:40e2292d5099
[Pipeline] echo
false
[Pipeline] echo
str=>4136bbdf9cc5

[Pipeline] echo
different string:4136bbdf9cc5

检查字符串末尾是否有空格谢谢您的建议!根据你的建议,我已经解决了我的问题。@herryliq你能把它贴出来并接受它作为答案吗?