我正在尝试使用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:从位于http:// localhost:8888的服务器中获取配置
(而不是http:// config-server:8888)
然后,控制台显示:
无法找到PropertySource:“ http:// localhost:8888 / user-server-config / desa ”的GET请求上的I / O错误:连接被拒绝;嵌套的异常是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包含 HTTP://本地主机:8888 与 /用户服务器配置/经社部 在年底。而不是application.yml中指示的 http:// server-config:8888
正如spencergibb在此处建议的那样,并按照官方文档的建议创建一个bootstrap.yml文件:
bootstrap.yml
spring: cloud: enabled: true config: uri: http://config-server:8888 failFast: true retry: maxAttempts: 20
并从中删除上述包含的属性application.yml。
application.yml