我正在使用jenkins的docker镜像并将其部署在kubernetes集群上。
我已经编写了一个时髦的脚本来在jenkins上动态创建的slave上运行curl命令,并且还配置了slave运行curl命令,但是在我的jenkins控制台中遇到了上述错误。我还检查了是否使用where curl
在我的从节点上安装了curl,它给出的响应为/usr/bin/curl
。
我尝试仅在我的从属节点上运行curl命令,它可以工作。但是,当我使用Jenkins调用groovy脚本文件时,它给出了错误java.io.IOException: Cannot run program "curl": error=2, No such file or directory
。
答案 0 :(得分:0)
我想groovy无法找到curl,请尝试使用完整路径调用curl,如下所示:
def process = ['/usr/bin/curl', 'https://someurl'].execute()
process.consumeProcessOutput(System.out, System.err)
process.waitFor()
作为替代方案,如果您只需要对某些URL进行http get请求,则可以通过普通方式而不用依赖curl来做到这一点:
def response = 'https://someurl'.toURL().text
<评论后编辑>
您还可以使用纯常规方法和以下内容(未经测试)进行发布请求:
def url = 'http://api.duckduckgo.com'.toURL()
def body = 'some data'
url.openConnection().with {
doOutput = true
requestMethod = 'POST'
// send post body
outputStream.withWriter { writer ->
writer << body
}
// set header
setRequestProperty "Content-Type", "application/x-www-form-urlencoded"
// print response
println content.text
}