docker-compose.yml 如何传值给微服务配置文件

静坐的时光丶 发布于 2018/12/07 14:30
阅读 455
收藏 0

当用docker-compose.yml部署spring cloud 到docker后。获取的IP地址其实是取的docker容器的IP。在EUREKA中显示的也是容器的IP。

 

现在想显示外部服务器的IP和对应的链接IP

 

  instance:
    hostname: ${spring.cloud.client.ip-address}
    prefer-ip-address: true
    instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}

 

进行如下尝试:

1.把IP地址静态写死192.168.0.191.这样在status中是显示了IP 了、但是左下角的链接里还是docker容器中的IP

  instance:
    hostname: 192.168.0.191
    prefer-ip-address: true
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}

 

 

 2.写变量传值:(本来按网上查看的写${client.address},但是这样gradlew build过不了)后来查了网上的文章、按下面的写了hostname: '{{client.address}}'

  instance:
    hostname: '{{client.address}}'
    prefer-ip-address: true
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}

docker-compose.yml 传值:好像没传进去、不知道怎么样设置变量传值

    command:
      - "--client.address=192.168.0.191"

 

还有我想在最后显示微服务器的版本号:

eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${spring.application.name}:${server.port}:@project.version@

 

因为:@project.version@是引用maven里面的属性、我用的是GRADLE 不知道怎么写

 

总结想解决的问题就是:

1怎么办把微服务的版本号传进去显示

2怎么在docker-compose.yml 动态配置IP

加载中
返回顶部
顶部