0

我在 GitHub 中设置了一个 Web-hook 来为每个推送事件触发一个 Jenkins 构建。我正在从 Blue Ocean Docker 容器运行 Jenkins。

https://imgur.com/bNf5dMd

我可以从 docker容器中指定的http://192.168.99.101:32771/访问 jenkins。我已经指定了 git 存储库并选中了“GitHub hook trigger for GITScm polling”复选框。

我可以在提交后手动启动构建过程,但是当我在 github 中使用有效负载 url http://192.168.99.101:32771/github-webhook/设置 webhook并提交某些内容时,我收到错误“我们无法传递此有效负载:无法连接到服务器”

我看过的其他解决方案。

  1. 使用 ngrok。但我没有在本地主机上运行它。
  2. 我尝试使用个人访问令牌并创建了一个从 Jenkins 到 Github 的自动 webhook。我得到了同样的错误。

我错过了什么,或者我做错了什么?

4

2 回答 2

1

Github 永远不会访问您的Jenkins 服务器,因为您的服务器只能在网络内访问。

错误非常明显。

我们无法传递此有效负载:无法连接到服务器

http://192.168.99.101:32771就从网络外部访问它而言,这与您的本地主机相同。

可能的解决方案。

  • 在可以访问 Internet 的远程服务器上运行 jenkins,并在 Github 的 webhook 中提供该 IP
  • 将您的公共 IP传递到 Github,如果访问有任何问题,您可能仍然会遇到定义端口转发的问题。
于 2019-09-02T03:59:43.340 回答
0

对于 jenkins 服务器位于 AWS 的 Ec2 实例中的任何人,如果它位于私有子网中,您可以做两件事:

  1. 将您的私有 ec2 移动到公共子目录中
  2. 在公共子网中创建负载均衡器 (ALB),并将您的私有 ec2 实例附加到该负载均衡器。然后为你的 github hook 使用 ALB 的地址。
于 2021-05-19T03:48:55.160 回答