【发布时间】:2019-06-16 06:45:06
【问题描述】:
当我在 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 个项目
预测器/测试/test_server.py ......
[100%]
========== 6 在 1.31 秒内通过 ==========
但是当我通过 jenkins 管道运行相同的命令时,它会失败并出现以下错误:
requests.exceptions.ConnectionError: HTTPConnectionPool(host='host1', 端口 = 8088):最大重试次数超出 url://predict/api/v1(由 NewConnectionError(': 建立新连接失败: [Errno -2] Name 或服务未知',))
/usr/lib/python3.6/site-packages/requests/adapters.py:516: 连接错误
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"
}
}
}
}
谁能告诉我为什么它会失败?
【问题讨论】:
-
解决方案是传递公共 ip,但会导致另一个问题,我必须阅读有关如何使两个容器通过 compose 进行通信的问题
标签: docker jenkins dockerfile