无法从本地启动项目连接到正在运行的postgresql容器



我创建了一个docker-compose.yml来运行postgresql数据库。虽然图像被拉出并可以成功运行,但我无法通过我拥有的春季启动项目连接到我的数据库。当我尝试在成功运行我的postgresql容器docker-compose up后运行我的春季启动项目时,我得到了错误org.postgresql.util.PSQLException: The connection attempt failed.和一个巨大的错误日志文本,在我发现原因的下面。

Caused by: java.net.UnknownHostException: postgresqldb

,这是我的db映像的名称。

我docker-compose。在我的spring项目的根目录

version: '3.1'
services:
postgresqldb:
image: postgres
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_USER=postgres
- POSTGRES_DB=booksdb

我的应用程序。属性

server.port=8081
server.servlet.context-path=/rest
#Postgres
spring.datasource.url=jdbc:postgresql://postgresqldb:5432/booksdb
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create
#JWT
jwt.secret-key=someKey

我很感激你的帮助。

也许你应该给容器添加一个主机名:

version: '3.1'
services:
postgresqldb:
image: postgres
hostname: postgres
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_USER=postgres
- POSTGRES_DB=booksdb

docker使用自己的网络并在内部解析主机名。您应该为正在运行的容器分配一个主机名,该主机名可以在其他容器中找到。

最新更新