我在docker中运行了一个Spring Cloud Eureka客户端实例,我希望客户端自己注册主机的IP地址而不是容器的主机名到Eureka服务器,所以我设置{ {1}}和eureka.instance.ip-address: xx.xx.xx.xx
到客户端的eureka.instance.prefer-ip-address: true
,但这不起作用,它仍然将容器的主机名注册到服务器,任何帮助都表示赞赏!
application.yml
我的Spring Boot版本为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 Cloud为2.0.0.RELEASE
。
答案 0 :(得分:0)
在春季服务中提供
spring:
application:
name: uaa-service
cloud:
inetutils:
ignored-interfaces:
- eth0
- eth1
- eth2
- eth3
- lo
取自this
答案 1 :(得分:0)
我使用相同版本的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