java - Docker Compose Tomcat无法连接到postgresql

标签 java postgresql docker tomcat

我有 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/

相关文章:

postgresql - 我可以在 PostgreSQL 触发器函数中迭代 NEW 吗?

python - 具有类似错误 'tuple' 对象的 Django raw() 查询没有属性 'id'

python - 如何在sqlalchemy中指定表的填充因子?

selenium - 在 Selenium Grid AWS Fargate 设置中安装/dev/shm 卷的替代方案

python - 我可以在可用于 ubuntu docker 镜像的 macOS 上为 python 包创建轮子吗?

java - 如何获取android cpu型号名称?

java - Hadoop MR 在 reduce 方法中保持数组引用

java - Docker 卷映射 + windows = 令人难以置信的慢?

java - 检查当前日期日期是否在当前月份内

java - java中的正则表达式["0-9"]问题