[英]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:5432
或172.0.0.1:5432
那么現在可以在主機db:5432
上訪問db:5432
您需要將主機名localhost
替換為db
。 您的 postgres 連接字符串也可能沒有主機,並且可能默認嘗試連接到 localhost。 應該可以查看 sequelize 以找出如何通過主機。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.