首页 > 解决方案 > 为什么直接在节点上运行 cmd 时 Jenkins 不能从 Git 获取?

问题描述

我有一个 Jenkins 管道作业,一开始就从 Git 获取 jenkinsfile。这项工作已经正常运行了很长时间,但今天它不起作用。

我在节点上测试了命令,效果很好: 在此处输入图像描述 注意:

  1. 我直接运行命令但它失败了
  2. 然后我取消代理并再次运行,它变得OK
  3. 我像詹金斯一样运行了测试命令

我检查了http://:8080/pluginManager/advanced中的配置,没有代理配置。(实际上我在那里配置了 not-working-proxy 然后运行我的工作,Jenkins 报告“代理超时”,然后我删除了代理配置,它再次报告之前的错误)

然后我检查了 http://:8080/configure ,发现有一个“环境变量”选项,我确实有“https_proxy”。在我删除变量之前,我的 Jenkins 项目配置页面报告: 在此处输入图像描述 当我删除变量时,红色警报消息消失了。我似乎至少 Jenkins 主机能够重新识别该 Jenkins 服务器。

看来我已经解决了这个问题,但是当我再次运行该作业时,问题仍然存在: 在此处输入图像描述

似乎该错误与我在设置了代理变量的节点上直接运行命令时报告的错误相同。我现在已经删除了所有代理设置。

有什么工具可以用来调查或调试吗?例如,我可以运行任何 Groovy 脚本来弄清楚发生了什么?

注意:此 Git 存储库没有权限限制。实际上,我在那个 Git 实验室上创建了一个公共 Git 存储库,没有任何帐户的任何人都可以克隆该存储库,但这项工作仍然无法正常工作。

我已经实施了一种解决方法:

我没有在 http://:8080/configure 的“环境变量”部分中删除 http_proxy 和 https_proxy,而是保留了这两个变量,但将它们的值设置为空。然后我的工作就可以工作了。

似乎除了查看 Jenkins 插件管理器的“高级”选项卡和“配置系统”页面的“环境变量”部分之外,Jenkins 还试图从其他地方获取环境变量。可能来自 Node 或 Jenkins master 的 .bashrc 文件。

标签: gitjenkins

解决方案


推荐阅读