Spring cloud alibaba(二)nacos服务发现docker相同ip冲突
·
引入服务发现其实比较简单
项目架构:同Spring cloud alibaba(一)多模块项目整合
- spring cloud
- pay
- smdd
- coupon
- base
- order-goods
- inventory
在配置文件里面添加如下配置:
spring:
cloud:
nacos:
discovery:
server-addr: 172.17.xx.xx:8848
这时候就能发现,在我们的nacos上面就可以看到注册的主机了,但是有个问题,我们每个服务有两个服务器上面,导致docker的内网ip一样。因为原来服务之间调用,需要固定http的ip的。所以接下来,要用宿主机的ip来替代docker的ip+端口,以防止nacos上注册的冲突。
这时候需要在Dockerfile上添加【–spring.cloud.nacos.discovery.ip=${ip}】
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom,","-jar","/app.jar","--spring.profiles.active=${env}","--spring.cloud.nacos.discovery.ip=${ip}"]
docker-compose里面添加如下配置:
coupon:
image: coupon:1.0
container_name: coupon
environment:
- env=pre
- ip=${ip}
然后就是docker-compose启动传参;参考:我如何与docker-compose一起传递参数
至此,发现nacos上注册的ip是宿主机的ip
更多推荐

所有评论(0)