无法连接到 MongoDb,而我 运行 来自 Jenkins 的 docker 工作

Unable to connect to MongoDb while I running a job from Jenkins on docker

我在 Linux 机器上安装了一个 docker,我有一个带有 Jenkins 的容器可以触发作业,我的最后一步是 运行 测试,这是我的第一步在我的 Nunit 测试中是连接到 MongoDB,它也是我的 docker 堆栈的一部分。

从 Jenkins 日志中我收到以下错误:

A timeout occured after 30000ms selecting a server using
 CompositeServerSelector{ Selectors =
 MongoDB.Driver.MongoClient+AreSessionsSupportedServerSelector,
LatencyLimitingServerSelector{ AllowedLatencyRange = 00:00:00.0150000
 } }. Client view of cluster state is { ClusterId : "1", ConnectionMode
 : "Automatic", Type : "Unknown", State : "Disconnected", Servers : [{
 ServerId: "{ ClusterId : 1, EndPoint : "Unspecified/"my AWS
 host":27017

请注意:

1) MongoDB 和 Jenkins 容器位于同一网络上。

2) 我可以从 Jenkins 容器 curl 到 Mongo 的完整 IP 地址。

3) 如果我 运行 从我的本地电脑指向远程机器(指向相同的 docker)Mongo 连接正常。

4) 在我的 AWS 控制台中,所有流量和端口都在两侧打开。

有一个非常相似的问题,就我而言,我们使用 public DNS 导致我们 problem.Consider 从 public DNS 更改为 Public IP。