docker - 为什么我的 bash 函数在 Jenkinsfil 中不起作用
问题描述
我写了这个函数
def docker_images(image_name,image_tag){
def curl_image_exists_status_code =
curl_image_exists_status_code=sh (
script:""" docker login -u XXXXX -p $$$$$$ 2> /dev/null 1>/dev/null
docker pull XXXXX/'${image_name}':'${image_tag}' > /dev/null && echo "success" || echo 'failed'
""", returnStdout: true)
echo "${curl_image_exists_status_code}"
return (curl_image_exists_status_code == 'success')?true: false
}
但输出是
成功
空值
最后一行返回false
的输出curl_image_exists_status_code
应该是成功,最后一行应该返回 true 但为什么它不起作用?
解决方案
您需要将 .trim() 添加到 sh 的输出中,如下所示:
def docker_images(image_name,image_tag){
def curl_image_exists_status_code =
curl_image_exists_status_code=sh (
script:""" docker login -u XXXXX -p $$$$$$ 2> /dev/null 1>/dev/null
docker pull XXXXX/'${image_name}':'${image_tag}' > /dev/null && echo "success" || echo 'failed'
""", returnStdout: true).trim() //this will make your output trimmed
echo "${curl_image_exists_status_code}"
return (curl_image_exists_status_code == 'success')?true: false
}
推荐阅读
- ruby - encode': "\\x90" on UTF-8 (Encoding::InvalidByteSequenceError) 对虾
- swift - 如何添加/乘以 USDZ 格式的纹理?
- java - java.lang.IllegalStateException:无法在 org.springframework.beans.factory.support.AbstractBe 处将父 bean 工厂设置为 self
- date - Power BI 日期条件
- javascript - 将年份添加到日期数组
- node.js - 无法在 GitHub 操作中将 Node.js 与 Docker MySQL 数据库连接
- python - 在回调 Dash 中使用 2 个输入动态更新下拉选项
- javascript - 如何使用javascript每x次运行一个脚本?
- javascript - 如何使用 Jest 模拟 DynamoDBDocumentClient 构造函数(AWS SDK V3)
- dax - 创建计算列