我创建了一个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使用自己的网络并在内部解析主机名。您应该为正在运行的容器分配一个主机名,该主机名可以在其他容器中找到。