簡體   English   中英

后端容器無法連接到數據庫 - Sequelize、Node、Postgres、Docker

[英]Backend container can't connect to database - Sequelize, Node, Postgres, Docker

當我嘗試連接后端(使用 Sequelize)時,出現以下錯誤:

error ConnectionRefusedError [SequelizeConnectionRefusedError]: connect ECONNREFUSED 127.0.0.1:5432

docker-compose.yml

version: "3.7"
services:
  frontend:
    build:
      context: ./client
      dockerfile: Dockerfile
    image: client
    ports:
      - "3000:3000"
    volumes:
      - ./client:/usr/src/app
  backend:
    build:
      context: ./server
      dockerfile: Dockerfile
    image: server
    ports:
      - "8000:8000"
    volumes:
      - ./server:/usr/src/app
  db:
    image: postgres
    environment:
      POSTGRES_DB: ckl
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: docker
    ports:
      - "5432:5432"

我究竟做錯了什么 ?

提前致謝

假設您的后端連接到數據庫,您應該添加一個depends_on

  backend:
    build:
      context: ./server
      dockerfile: Dockerfile
    image: server
    depends_on:
      - db
    ports:
      - "8000:8000"
    volumes:
      - ./server:/usr/src/app

如果您的應用程序配置為連接到localhost:5432172.0.0.1:5432那么現在可以在主機db:5432上訪問db:5432您需要將主機名localhost替換為db 您的 postgres 連接字符串也可能沒有主機,並且可能默認嘗試連接到 localhost。 應該可以查看 sequelize 以找出如何通過主機。

暫無
暫無

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

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