【问题标题】:PostgreSQL + metabase connection refusedPostgreSQL + 元数据库连接被拒绝
【发布时间】:2021-12-01 00:01:59
【问题描述】:

我正在尝试将 postgres 配置为与 springboot 和元数据库一起运行。每个服务都单独运行,但是当我尝试将 3 个服务放在一个 docker-compose 文件中时,我收到以下错误:

 Caused by: org.postgresql.util.PSQLException: Connection to 0.0.0.0:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
metabase-container |    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:303)

但是,我已经将 db 的 5432 端口映射到了元数据库容器的 5432 端口。

然而,它似乎不起作用。对这个问题有任何帮助吗? (请在下面找到我的 docker-compose 文件)

version: '2'

services:
  spring:
    image: 'realtime:latest'
    container_name: spring
    depends_on:
      - db
    environment:
      - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/compose-postgres
      - SPRING_DATASOURCE_USERNAME=compose-postgres
      - SPRING_DATASOURCE_PASSWORD=same
      - SPRING_JPA_HIBERNATE_DDL_AUTO=update
    volumes:
      - /home/vagrant/valorisation-2.0:/app
    command: ["java", "-jar", "rtv-1.jar"] 
    mem_limit: 10g
    mem_reservation: 10g
    ports:
      - "8079:8080"
  db:
    image: 'postgres:13.1-alpine'
    container_name: db
    environment:
      - POSTGRES_USER=compose-postgres
      - POSTGRES_PASSWORD=********
      - METABASE_PASSWORD=same
    ports:
      - "8078:5432"
      - "54320:5432"
  metabase:
    container_name: metabase-container
    restart: "always"
    image: metabase/metabase
    ports:
      - "3000:3000"
      - "5432:5432"
    environment:
      - MB_DB_TYPE=postgres
      - MB_DB_DBNAME=db
      - MB_DB_PORT=5432
      - MB_DB_USER=compose-postgres
      - MB_DB_PASS=same
      - MB_DB_HOST=0.0.0.0
      - MB_ENCRYPTION_SECRET_KEY=********

【问题讨论】:

    标签: postgresql spring-boot docker metabase


    【解决方案1】:

    尝试将元数据库环境变量中的MB_DB_HOST0.0.0.0 更改为db

    【讨论】:

    • 如果对您有帮助,您能否将其标记为解决方案和/或投票?谢谢。
    【解决方案2】:

    我不明白的是所有服务都在同一个网络中。因此,删除服务之间的端口转发(将服务暴露给外部组件但与容器内的通信无关)并更改元数据库配置文件就可以完成这项工作。这是修改后的 docker-compose.yml 文件:

    version: '2'
    
    services:
      spring:
        image: 'realtime:latest'
        container_name: spring
        depends_on:
          - db
        environment:
          - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/compose-postgres
          - SPRING_DATASOURCE_USERNAME=********
          - SPRING_DATASOURCE_PASSWORD=**********
          - SPRING_JPA_HIBERNATE_DDL_AUTO=update
        volumes:
          - /home/vagrant/valorisation-2.0:/app
        command: ["java", "-jar", "rtv-1.jar"] 
        mem_limit: 10g
        mem_reservation: 10g
        ports:
          - "8079:8080"
      db:
        image: 'postgres:13.1-alpine'
        container_name: db
        environment:
          - POSTGRES_USER=compose-postgres
          - POSTGRES_PASSWORD=compose-postgres
          - METABASE_PASSWORD=compose-postgres
        ports:
          - "8078:5432"
      metabase:
        container_name: metabase-container
        depends_on:
          - db
        restart: "always"
        image: metabase/metabase
        ports:
          - "3000:3000"
        environment:
          - MB_DB_TYPE=postgres
          - MB_DB_DBNAME=********
          - MB_DB_PORT=5432
          - MB_DB_USER=************
          - MB_DB_PASS=compose-postgres
          - MB_DB_HOST=db
          - MB_ENCRYPTION_SECRET_KEY=***********
    

    【讨论】:

      猜你喜欢
      • 2019-08-04
      • 2017-08-05
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 2017-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多