我正在尝试在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:
两个服务都在同一个用户定义的网络下运行;我如何允许服务找到配置服务?
感谢。