当我在cmd上运行以下命令时,它在以下输出中运行良好:
$ docker run --env-file /home/sonarqube/pr-config.env -d --add-host="host1:192.168.0.18" 243c286dec63 94ab7264a038dc6a91f5e457e19fba8effa48d82153fe945d06cd64aec4f369f
$ docker logs 94ab7264a038dc6a91f5e457e19fba8effa48d82153fe945d06cd64aec4f369f
=============测试会话开始============
平台linux-Python 3.6.7,pytest-4.0.2,py-1.7.0,pluggy-0.8.1 rootdir:/ code,inifile:收集了6个项目
predictor / tests / test_server.py ......
[100%]
========== 6在1.31秒内通过==========
但是当我通过jenkins管道运行相同的命令时,它失败并显示以下错误:
requests.exceptions.ConnectionError:HTTPConnectionPool(host ='host1', port = 8088):url超过了最大重试次数:// predict / api / v1(由 NewConnectionError(':无法建立新连接:[Errno -2]名称 或服务未知”,))
/usr/lib/python3.6/site-packages/requests/adapters.py:516: ConnectionError
Jenkins文件如下:
def awesomeVersion = 'UNKNOWN'
pipeline {
agent any
stages {
stage('SCM Checkout') {
steps {
git branch: 'master', url: 'git@github.com:xyx.git'
}
}
stage('Docker build'){
steps{
script {
awesomeVersion = sh(returnStdout: true, script: 'hostname --ip-address')
}
sh "docker run --env-file /home/sonarqube/pr-config.env -d --add-host='host1:${awesomeVersion}' 243c286dec63"
}
}
}
}
有人可以告诉我为什么它可能会失败吗?
答案 0 :(得分:0)
一个人可以使用这个新的jenkins文件来解决问题
def awesomeVersion = 'UNKNOWN'
pipeline {
agent any
stages {
stage('SCM Checkout') {
steps {
git branch: 'master', url: 'git@github.com:rahul-padhee/Sigmoid.git'
}
}
stage('Docker build'){
steps{
script {
awesomeVersion = sh(returnStdout: true, script: 'curl --silent http://169.254.xxx.xxx/latest/meta-data/public-ipv4')
}
sh "docker run --env-file /home/sonarqube/pr-config.env -d --add-host='host1:${awesomeVersion}' 243c286dec63"
}
}
}
}