我正在尝试构建一个docker容器,并使用jenkins对同一个构建的容器运行我的集成测试。
我目前遇到的问题是我可以构建并运行容器,当我尝试对http端点进行卷曲时,我得到连接拒绝。所以我认为这与我的jenkins slave配置有关。我已将jenkins用户添加到wheel docker jenkins
组,当我运行以jenkins记录的curl命令时,它可以正常工作。但是当我从jenkins运行它时,我得到一个连接拒绝。
JenkinsFile
sh "docker build -t my-service ."
sh "docker rm -f my-service || true"
sh "docker run -d -p 9091:5000 -p 1433:1433 --name=my-service my-service"
sh "docker ps"
sh "curl -v http://172.16.32.20:9091/api/products/"
詹金斯输出
+ curl -v http://172.16.32.20:9091/api/products/baggingoptions
* About to connect() to 172.16.32.20 port 9091 (#0)
* Trying 172.16.32.20...
% Total % Received % Xferd Average Speed Time Time Time
Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:--
0* Connection refused
* Failed connect to 172.16.32.20:9091; Connection refused
* Closing connection 0
curl: (7) Failed connect to 172.16.32.20:9091; Connection refused
奴隶信息:
Static hostname: **************************
Icon name: computer-vm
Chassis: vm
Machine ID: 009cdec7fded4740be96692dfee788c0
Boot ID: fe492def29c047bf910c213911fda980
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-514.26.2.el7.x86_64
Architecture: x86-64
答案 0 :(得分:0)
如果您执行docker运行,服务器启动可能需要一些时间,但您会立即尝试连接。另外可能的原因是防火墙阻止请求,服务器的IP地址不是静态的,或者docker服务本身失败。没有足够的信息可以得出确凿的答案。
答案 1 :(得分:-1)
只需在执行 curl 之前添加延迟(或在 curl cmd 中添加重试):docker 不会那么快地加载容器:)