我有下一个docker-compose文件:
version: "3"
services:
proxy:
build:
context: ./client
dockerfile: proxy.Dockerfile
ports:
- "80:80"
server:
build:
context: .
dockerfile: server.Dockerfile
ports:
- "3000:3000"
depends_on: [db]
db:
image: postgres
environment:
POSTGRES_USER: lautidamo
POSTGRES_PASSWORD: la12papa
POSTGRES_DB: product-manager
ports:
- "5432:5432"我有这个database.ts:
import { Sequelize } from "sequelize";
export const sequelize = new Sequelize(
"product-manager",
"lautidamo",
"la12papa",
{
dialect: "postgres",
host: "localhost",
port: 5432
}
);代理和服务器服务工作正常。但是,当我向必须连接到数据库的路由发出请求时,会出现以下错误connect ECONNREFUSED 127.0.0.1:5432。
发布于 2020-01-24 11:28:03
不要连接到localhost。连接到数据库服务的名称。在您的情况下,应该是db。
它看起来像这样:
export const sequelize = new Sequelize(
"product-manager",
"lautidamo",
"la12papa",
{
dialect: "postgres",
host: "db",
port: 5432
}
);编辑:另外,还有几点...
db服务中使用该ports选项,除非您想要从外部连接到它。也就是说,如果您想要使用组合外部的东西连接到数据库容器,例如dbeaver或某种数据库管理工具,则只需要在其中使用它。.env文件中,放在你的docker-compose.yml旁边。如果您将它们添加到server服务定义中,则可以使用process.env.POSTGRES_USER等访问这些值。:)https://stackoverflow.com/questions/59889986
复制相似问题