在Windows的Docker容器中运行时,Spring Boot应用程序会挂起Postgres连接

时间:2018-08-15 12:55:49

标签: java postgresql docker

我们发现,当将Docker容器部署在docker-for-windows环境中时,它会挂起,并最终耗尽所有可用的Postgres连接。

通过在Postgres中运行SELECT * FROM pg_stat_database并观察numbbackends值增长,直到达到Postgres拒绝进一步连接的最大数量(100),可以观察到这一点。

1)当此应用程序在Mac上的docker容器中运行时,不会发生。

2)当此应用直接在Mac上运行时(通过“ java -jar ./ourjar.jar”命令在容器外部),则不会发生。

3)当此应用直接在Windows上运行时(通过“ java -jar ./ourjar.jar”命令在容器外部),则不会发生。

4)奇怪的是,即使该应用程序在Mac上运行的Windows VM上运行,然后在该VM中运行于Windows的Docker-for Windows的Docker容器中运行,也不会发生。

仅此应用程序的组合在Docker for Windows(在裸机Windows)上的容器中运行,从而产生了问题。

我正在寻求有关此问题的建议,是否有人曾经见过这样的事情?
如果需要,可以使用数据库配置文件,应用程序配置文件(pom.xml,application.properties等)和我们的DAO类(它们是基本的JPA)。

0 个答案:

没有答案