我有一個 Jenkins 管道,它使用 if 陳述句來檢查 docker 容器是否正在運行。我運行以下命令來獲取運行狀態:
def containerStatus = sh(script: "ssh -o StrictHostKeyChecking=no -l <user> <server> 'docker container inspect -f '{{.State.Status}}' ${tagName}'", returnStdout: true)
我已經添加了
echo containerStatus
在 Jenkins 控制臺中,此輸出為“正在運行”
但是,當我在管道中有以下內容時:
if(containerStatus.toString() == 'running'){
echo 'Initial status: Container running'
...some code...
}
這個條件沒有被執行(我達到了我定義的錯誤條件)。我也嘗試過洗掉 .toString(),但沒有運氣。
管道中的完整階段是:
stage("Container") {
steps {
script{
def containerStatus = sh(script: "ssh -o StrictHostKeyChecking=no -l <user> <server> 'docker container inspect -f '{{.State.Status}}' ${tagName}'", returnStdout: true)
echo containerStatus
if(containerStatus.toString() == 'running'){
echo 'Initial status: Container running'
...some code...
}
else {
error "Container not running"
}
}
}
}
uj5u.com熱心網友回復:
您需要修剪結果輸出:
def containerStatus = sh(script: "ssh -o StrictHostKeyChecking=no -l <user> <server> 'docker container inspect -f '{{.State.Status}}' ${tagName}'", returnStdout: true).trim()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/446829.html
標籤:詹金斯
