簡體   English   中英

無法連接到 Docker Compose 中的 Postgres 數據庫

[英]Unable to connect to the Postgres database in Docker Compose

我正在構建一個 Node JS Web 應用程序。 我正在為數據庫使用 Postgres SQL 和 Sequelize。

我有具有以下內容的 docker-compose.yaml。

    version: '3.8'

services:
  web:
    container_name: web-server
    build: .
    ports:
      - 4000:4000
    restart: always
    depends_on:
      - postgres
  postgres:
    container_name: app-db
    image: postgres:11-alpine
    ports:
      - '5431:5431'
    environment:
      - POSTGRES_USER=docker
      - POSTGRES_PASSWORD=secret
      - POSTGRES_DB=babe_manager
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    build:
      context: .
      dockerfile: ./pgconfig/Dockerfile
volumes:
  app-db-data:

我正在使用以下憑據連接到數據庫。

DB_DIALECT=postgres
DB_HOST=postgres
DB_NAME=babe_manager
DB_USERNAME=docker
DB_PORT=5431
DB_PASSWORD=secret

當應用程序嘗試連接到數據庫時,出現以下錯誤。

getaddrinfo ENOTFOUND postgres

我也試過用這個。

 DB_DIALECT=postgres
    DB_HOST=localhost
    DB_NAME=babe_manager
    DB_USERNAME=docker
    DB_PORT=5431
    DB_PASSWORD=secret

這次我收到以下錯誤。

connect ECONNREFUSED 127.0.0.1:5431

我的應用服務器不在docker-compose.yaml內。 我只是使用“nodemon server.js”啟動它。 我該如何解決?

你需要確保你的 Postgres 容器和你的節點在同一個網絡上。 在它們駐留在 common.network 中之后,您可以使用 docker 的 DNS 從 Node 應用程序解析數據庫,在您的情況下,八個 postgres 或主機名的 test-db 應該可以工作。 有關通過docker.networks進行容器通信的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM