1

目前,我们正在使用 jhipsters 微服务方法开发一个新的应用程序。该架构由一个 uaa 服务器、一个网关、作为服务注册表的 consul 和几个微服务组成。

如果我们将所有东西都部署在 docker 容器中并完全在 docker 中运行应用程序,那么效果会很好。但问题是:

我们使用 Docker Desktop for Mac 在 Mac OS 上作为主机进行开发。我们想要实现的是,我们可以使用 docker-compose 文件在 docker 中运行 98% 的基础架构,并且只运行我们当前在主机上处理的微服务。Consul 和网关也在 docker 容器中运行,并且在 consul 上注册的所有服务都可以在部分8500下的本地映射端口上看到/services。我们现在面临的问题是,docker 内部的所有服务(包括 uaa 服务器)都是使用内部 docker IP range 注册的172.18.0.x.。因此,一旦我们的微服务(在主机上运行)例如使用 consul 请求 uaa 服务,它就会得到172.18.0.11:9999作为服务地址。但是我们的微服务现在如何从主机访问这个地址,因为两个网络(192.168.101.x172.18.0.x)之间没有可用的桥接器

在 Mac 上使用 jhipster 进行开发时,你们如何使用 docker?到目前为止,我们发现这个问题可能与 docker Desktop for mac 有关,因为在 Linux 上,内部 IP 可以从主机系统访问(例如,您可以172.18.0.5从主机系统ping不适用于mac)。

我们将非常感谢任何建议,因为目前我们无法真正从 docker 方法中受益,它会减慢速度而不是改进它们。

在此先感谢,弗洛里安

4

0 回答 0