如何从docker网络(compose)访问localhost(IDE)



我们正在使用docker compose进行微服务的端到端开发和测试。基本上,每个组合服务都有一个从无处不在的开发端口到容器标准生产端口8080的端口映射。

[UC1]UI在开发模式下调用localhost上已知开发端口的微服务(docker端口映射(因此可以停止docker网络上的任何容器,并在IDE中重新启动它。UI仍然可以调用该服务,并且只要IDE进程绑定到开发端口(这是默认配置文件(,该服务仍然可以调用其他服务。这就是我们通过UI调试微服务并取得巨大成功的方式。

[UC2]然而,当在docker中运行的微服务回调到在IDE中运行的微观服务时,该解决方案会失败。这是因为docker compose网络中的容器与localhost是隔离的。他们通过容器名称找到彼此,但不知道docker主机。

如何以最小的配置更改和与UC1相同的灵活性启用UC2

如果您在Windows上,您可以使用特殊的DNS名称host.docker.internal访问主机,请参阅此处。

最新更新