【发布时间】:2020-09-27 11:41:41
【问题描述】:
我的 Postgres 数据库在 Docker 容器中运行。当容器启动时,它说它已准备好在 5432 上侦听。 我的应用程序容器设置为依赖它。
container_name: my_postgres_db
image: library/postgres:latest
network_mode: bridge
expose:
- 5432
ports:
- 5432:5432
environment:
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=admin
- POSTGRES_DB=localdb
restart: always
应用的配置:
container_name: my_test_app
depends_on:
- db
build:
context: ./
dockerfile: Dockerfile
image: my_test_app
ports:
- 8080:8080
基于类似问题的解决方案,我将 DB URL 中的localhost 更改为:
spring.datasource.url=jdbc:postgresql://db:5432/localdb
它会导致另一个错误 =“未知主机异常”。即使我设法以这种方式构建应用程序,它仍然无法正常工作。日志说,
Connection to localhost:5432 refused
我还缺少什么?
为什么我明明把localhost:5432改成db:5432然后gradlew clean/build它还在听?
【问题讨论】:
-
我假设您的网络有问题,您可以阅读更多 docs.docker.com/compose/networking 并通过添加网络而不是暴露端口来解决它
标签: postgresql spring-boot docker docker-compose