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
删除上面包含的属性。