Docker – SpringConfig – 连接拒绝configuration服务器

我想用DockerCompose部署一个ConfigServrService和一个远程仓库的客户端。

docker-compose.yml就像:

version: '2' services: rabbitmq: image: rabbitmq ports: - "5672:5672" config-server: image: config-server environment: - "SPRING_PROFILES_ACTIVE=desa" ports: - "8888:8888" links: - rabbitmq depends_on: - rabbitmq user-service-config: image: user-service-config environment: - "SPRING_PROFILES_ACTIVE=desa" ports: - "8090:8090" links: - config-server - rabbitmq depends_on: - rabbitmq - config-server 

在他们部署的那一刻,客户端控制台显示:

cccConfigServicePropertySourceLocator:从服务器获取configuration: http:// localhost:8888

(而不是http:// config-server:8888 )

之后,控制台显示:

找不到PropertySource:对“ http:// localhost:8888 / user-server-config / desa ”GET请求的I / O错误:连接被拒绝; 嵌套的exception是java.net.ConnectException:连接被拒绝

该服务正尝试连接到http:// localhost:8888 / user-server-config / desa而不是http:// config-server:8888 。

客户端的application.yml文件是:

 server: port: 8090 spring: rabbitmq: host: 172.17.0.1 port: 5672 username: guest password: guest application: name: user-server-config cloud: enabled: true config: uri: http://config-server:8888 failFast: true retry: maxAttempts: 20 management: security: enabled: false 

我不知道为什么uri在最后包含了带有/ user-server-config / desa的 http:// localhost:8888 。 而不是http:// server-config:8888,如application.yml中所示

正如spencergibb 在这里所build议的那样 ,正如官方文档所build议的那样,创build一个bootstrap.yml文件:

 spring: cloud: enabled: true config: uri: http://config-server:8888 failFast: true retry: maxAttempts: 20 

并从application.yml删除上面包含的属性。