我有 2 个容器。一个是postgresql,一个是tomcat。 我尝试启动应用程序,但总是出现 o.h.e.jdbc.spi.SqlExceptionHelper - 连接被拒绝。检查主机名和端口是否正确,以及 postmaster 是否正在接受 TCP/IP 连接。错误。请帮助我,我没有太多时间。 最好的问候。
我尝试了不同类型的 docker 组合。但我总是遇到同样的错误。
16:48:09.557 [localhost-startStop-1] ERROR o.h.e.jdbc.spi.SqlExceptionHelper - Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
我的连接地址
db.user=admin
db.password=123456
db.url=jdbc:postgresql://moneytransferdb:5410/moneytransfer
我的docker compose yml
version: '3'
services:
moneytransferdb:
image: postgres
restart: always
ports:
- "5410:5432"
volumes:
- mydatavol:/var/lib/postgresql/data
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: 123456
POSTGRES_DB: moneytransfer
container_name: moneytransfer
networks:
- main
tomcat:
image: tomcat
ports:
- "8080:8080"
volumes:
- ../tcmb/tcmb-service.war:/usr/local/tomcat/webapps/tcmb.war
container_name: tcmb
depends_on:
- moneytransferdb
links:
- moneytransferdb
restart: always
networks:
- main
volumes:
mydatavol: {}
networks:
main:
最佳答案
将您的连接设置更改为:
db.user=admin
db.password=123456
db.url=jdbc:postgresql://moneytransferdb:5432/moneytransfer
端口映射使容器端口可用于主机但不被其他容器使用。对他们来说,只有容器港口很重要。
关于java - Docker Compose Tomcat无法连接到postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56081807/