当我尝试连接后端(使用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
如果您的应用程序配置为连接到
db:5432
或localhost:5432
,则现在可以在主机172.0.0.1:5432
上访问该数据库,您需要将主机名localhost
替换为db
。您的postgres连接字符串也可能没有主机,并且可能默认情况下尝试连接到localhost。应该能够看续篇来弄清楚如何通过主机。