在Docker容器中连接Spring Cloud应用程序

时间:2018-02-08 01:17:16

标签: spring docker spring-cloud

我正在尝试在Docker容器中托管Spring Cloud应用程序。基本异常如下:

search_1     | Caused by: java.lang.IllegalStateException: Invalid URL: config:8888

我理解原因是因为我的配置服务器中指定了URL。

spring.application.name=inventory-client
#spring.cloud.config.uri=http://localhost:8888
spring.cloud.config.uri=config:8888

在我的开发机器上,我可以使用localhost。但是,基于过去的问题(与连接到我的数据库有关),我了解到localhost不适合容器。对于我的数据库,我能够使用以下内容:

spring.jpa.hibernate.ddl-auto=none
spring.jpa.show-sql=false
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.url=jdbc:postgresql://db:5432/leisurely_diversion
 #spring.datasource.url=jdbc:postgresql://localhost:5000/leisurely_diversion    
spring.datasource.driver-class-name=org.postgresql.Driver

但显然这对配置服务器没有预期效果。

我的docker-compose文件:

# Use postgres/example user/password credentials
version: '3.2'

services:
  db:
    image: postgres
    ports:
      - 5000:5432
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      - type: volume
        source: psql_data
        target: /var/lib/postgresql/data
    networks: 
      - app
    restart: always
  config:
    image: kellymarchewa/config_server
    networks:
      - app
    volumes:
      - /root/.ssh:/root/.ssh
    restart: always
  search:
    image: kellymarchewa/search_api
    networks:
      - app
    restart: always
    ports:
      - 8082:8082
    depends_on:
      - db
      - config
      - inventory
  inventory:
    image: kellymarchewa/inventory_api
    depends_on:
        - db
        - config
    ports:
     - 8081:8081
    networks:
      - app
    restart: always
volumes:
  psql_data:
networks: 
  app:

两个服务都在同一个用户定义的网络下运行;我如何允许服务找到配置服务?

感谢。

0 个答案:

没有答案