我有2个彼此通信的spring REST应用程序(网关/安全性)。
当我向网关发送登录请求时,网关会将其转发到安全应用程序,在该应用程序中检查用户是否具有正确的权限。在这种情况下,将退还一个帐户。这在我的本地PC上很好用,但是当我将它放在docker中时,它停止工作。
我尝试过的:
我的 docker 组成看起来像。
我认为出错的代码(当我尝试将其发送到安全应用程序时,这在网关应用程序中):
如果我需要提供更多数据,请告诉我
最佳答案
这是错误的做法。 docker的首要经验法则是根本不使用localhost
。
您需要在docker compose中使用服务的名称,并且应该依赖docker容器与容器进行通信。
因此,在您的情况下,网址应如下所示
String url = "http://security:8083/auth/login";
同样,作为最佳实践,请勿将url直接写入代码中。始终在代码中使用
application.properties
接受它们,然后再使用环境变量覆盖它们。这可以通过覆盖环境变量来确保您的代码可以在不同的环境中运行,而无需更改代码
关于spring - 放置在Docker中时Spring应用程序无法通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61897304/