我创建了一个java web应用程序。当我在主机上运行java -jar xxx.jar时,它可以连接到我主机上的Postgres DB而没有任何问题。但是当我在我创建的docker容器中运行时,我的应用程序无法获取相同jdbc URL的驱动程序实例。错误是:
java.lang.RuntimeException:无法获取驱动程序实例 JDBCURL =” JDBC:在PostgreSQL:// ip_of_my_host:5432 / SRR”
这就是我运行docker image的方式:
docker run -p 4567:4567 \
-e JP_RESULTS_DB_URL=’jdbc:postgresql://ip_of_my_host:5432/srr’ \
-e JP_RESULTS_DB_USERNAME=my_username \
-e JP_RESULTS_DB_PASSWORD=my_password \
-it id_of_image
4567是我的Rest API服务器的端口号。我是否还需要为5432设置移植?如果我添加" -p 5432:5432",我收到错误它已经分配,所以我没有将此端口添加到docker run。
可能是什么问题?它是驱动程序问题或端口问题还是别的什么?
我还没有找到任何有用的答案,所以我不得不问。
答案 0 :(得分:2)
你应该使用docker-compose来构建堆栈,然后安装postgresql驱动程序,java等来构建整个基础架构。
为此你需要创建docker-compose yml。
例如找到以下链接
答案 1 :(得分:1)
通过更改单引号解决了此问题。谷歌文档自动将我的单引号改为倾斜,直到@Phil指出我才注意到。