一尘不染

连接被拒绝postgres docker

spring-boot

我用spring-boot,spring
jpa数据制作了一个小型应用程序,该应用程序连接到dockerized的postgres实例,即使我尝试通过’psql’连接到dockerized的postgres实例,它也能正常工作。问题是当我尝试对我的spring-
boot应用程序的映像实例进行泊坞化,并尝试将其与dockerized postegres实例链接时。我使用的docker命令是这样

docker run -it --link mypgcontainerwithpwd:postgres --name postgresclient1 sprinbootjpa

正如我已经提到的,容器 mypgcontainerwithpwd 正在运行,并且可以通过本地应用程序通过psql访问

psql -p 5555 postgres postgres

在jar中,我将执行 application.properties 文件,如下所示

spring.datasource.url=jdbc:postgresql://localhost:5555/postgres
spring.datasource.username=postgres
spring.datasource.password=password
spring.jpa.generate-ddl=true

在开始阶段,将引发一个异常并打印: connection refused localhost-> 5555

构建实例的dockerfile看起来像这样

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD ./SpringJPA-PostgreSQ-0.0.1.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

我是Docker的新手,但找不到任何可解决此问题的东西,我正在Windows 10上使用Unix容器运行docker。

谢谢大家。


阅读 546

收藏
2020-05-30

共1个答案

一尘不染

在属性文件中,您指出postgres与Spring Boot应用程序(localhost)在同一容器中运行,但事实并非如此,因为它在其他容器中运行。

以此替换您的财产:

spring.datasource.url=jdbc:postgresql://postgres:5555/postgres

您还可以指向docker bridge ip,通常为172.17.0.1。

2020-05-30