Jenkins执行Bower包失败(错误码#128):GitHub连接超时求助
排查Jenkins运行Bower包时GitHub连接超时的问题
这个问题我之前帮团队排查过类似的情况——虽然服务器本身能正常访问GitHub,但Jenkins的运行环境可能存在和终端环境不一样的限制,给你梳理几个大概率的排查方向:
1. Jenkins进程的网络代理配置缺失
有时候服务器全局代理是正常的,但Jenkins服务进程并没有继承到这些代理设置,导致它单独发起请求时超时。
- 检查Jenkins系统配置(Manage Jenkins -> Configure System)里的HTTP Proxy部分,确认代理地址、端口、排除域是否正确配置,尤其是github.com有没有被误加到排除列表里。
- 如果是通过启动脚本配置Jenkins的,可以在启动参数里添加代理相关的JAVA_OPTS,比如:
修改后重启Jenkins服务再测试。JAVA_OPTS="-Dhttp.proxyHost=your-proxy-host -Dhttp.proxyPort=your-proxy-port -Dhttps.proxyHost=your-proxy-host -Dhttps.proxyPort=your-proxy-port"
2. Bower调用Git时的配置差异
Bower本质是通过Git拉取仓库的,Jenkins执行Bower时使用的Git环境可能和你在服务器终端操作的不一样:
- 在Jenkins任务的构建步骤里,先添加一个执行shell的步骤,运行
git config --list查看当前Git的代理、远程配置,对比终端里的配置是否一致。 - 尝试将Bower依赖里的HTTPS地址替换为SSH协议,比如把
https://github.com/metafizzy/fizzy-ui-utils.git改成git@github.com:metafizzy/fizzy-ui-utils.git,但前提是要把Jenkins服务器的SSH公钥添加到GitHub对应的仓库或账号里。
3. 服务器防火墙/安全组的临时限流
即使平时访问正常,服务器的防火墙、安全组或者上游网络可能存在短时间的流量限制:
- 在Jenkins任务里添加前置测试步骤,运行
curl -v https://github.com/metafizzy/fizzy-ui-utils.git,查看请求的详细日志,确认是连接超时还是被拒绝。 - 检查服务器的iptables规则,或者云平台的安全组策略,有没有针对Jenkins运行用户(比如jenkins用户)的出站流量限制。
4. 工作区缓存或权限问题
Jenkins工作区的缓存文件损坏或者权限不足,也可能导致Git/Bower操作异常:
- 在任务里添加清理步骤,运行
bower cache clean和git clean -fd,清空Bower缓存和工作区的未跟踪文件,然后重新构建。 - 检查Jenkins工作目录的权限,确保jenkins用户对该目录有读写权限。
5. DNS解析的临时故障
服务器的DNS偶尔可能出现解析失败的情况,刚好在Jenkins构建时触发:
- 在Jenkins任务里添加
nslookup github.com步骤,查看解析的IP是否正常。 - 可以临时把github.com的IP地址添加到服务器的
/etc/hosts文件里,绕过DNS解析测试是否解决问题。
你可以先从代理配置和Git环境这两个方向入手排查,这是此类问题最常见的根源。如果还是无法解决,建议把Jenkins构建的完整日志贴出来,能更精准定位问题。
内容的提问来源于stack exchange,提问作者Pranav Singh
相关产品推荐
相关产品推荐

