我有一个在docker内部运行的Spring Cloud Eureka客户端实例,并且我希望客户端向Eureka服务器注册主机的IP地址而不是容器的主机名,因此我将eureka.instance.ip-address: xx.xx.xx.xx
和eureka.instance.prefer-ip-address: true
设置为客户端的application.yml
,但这不是工作时,它仍将容器的主机名注册到服务器,感谢您的任何帮助!
spring:
application:
name: uaa-service
server:
port: 8799
eureka:
service-url:
defaultZone: https://XX.YY.ZZ/eureka/
instance:
prefer-ip-address: true
ip-address: xx.xx.xx.xx
我的Spring Boot版本是
2.0.0.RELEASE
,而Spring Cloud是Finchley.M9
。 最佳答案
我正在使用相同版本的spring-boot并遇到类似的问题
但是我认为您将IP地址与实例ID混淆了。
看到这个链接:https://github.com/spring-cloud/spring-cloud-netflix/issues/1646#issuecomment-275121055
当您将鼠标悬停在链接上或单击链接时,它显示正确的IP地址吗?
无论如何,我有两个应用程序,其中一个使用spring-boot 1.5,该属性在其中起作用。
在2.0版本中,应用程序始终使用机器IP,而不是我在eureka.instance.ip-address
中告知的内容。
编辑>我在这里报告了一个错误:https://github.com/spring-cloud/spring-cloud-netflix/issues/2878
关于docker - Eureka客户端的“prefer-ip-address”在Docker容器中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49684566/