【发布时间】:2019-03-05 10:04:37
【问题描述】:
我有 Java SpringBoot Web 应用程序在主机上工作。应用程序连接到 PostgreSQL 数据库。一切正常。操作系统 - Ubuntu 18。
现在我需要在 Docker 容器中移动应用程序,PostgreSQL 除外,它将保留在主机上。
我安装了 Docker,启动了容器,但我在 docker 中的应用程序无法使用默认设置 (localhost) 连接到 PostgreSQL 数据库。
这是我的 application.properties 文件:
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/webdemodb
spring.datasource.username=postgres
spring.datasource.password=123
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL95Dialect
spring.jpa.generate-ddl=true
这是我的 Dockerfile:
FROM java:8
WORKDIR /
ADD target/webaccount-1.0-SNAPSHOT.jar app.jar
EXPOSE 8080
RUN fc-cache -f -v
ENTRYPOINT ["java","-jar","/app.jar"]
我了解了 Docker 的网络,但没有找到解决方案。我需要设置什么?
【问题讨论】:
-
你也要暴露5432端口
-
您的应用程序必须使用
host网络 -
Mohammad LB,据我所知,没有必要公开端口,因为它们按原样翻译。
标签: postgresql docker spring-boot