gpt4 book ai didi

node.js - 未处理的拒绝 SequelizeConnectionRefusedError : connect ECONNREFUSED 127. 0.0.1:5432 with dockers

转载 作者:行者123 更新时间:2023-12-02 21:04:35 30 4
gpt4 key购买 nike

我正在尝试为我的 Postgres 构建一个 docker-compose 文件,它使用 sequelize 作为 ORM ( https://sequelize.org/ )。这是我的 docker-compose.yml

version: "2"

services:

web:
build:
context : .
dockerfile: Dockerfile
image : testorganization
ports:
- "5000:5000"
links:
- db

db:
image: postgres
expose:
- 5432
volumes:
- ./data/db:/data/db
environment:
POSTGRES_HOST: db
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASS: admin

文件
FROM node:8-alpine
LABEL description="Docker file for organizations app"
RUN mkdir -p /var/www/logs/
RUN mkdir -p /logs/
RUN mkdir -p /usr/src/
WORKDIR /usr/src/

ADD package.json /usr/src/package.json
RUN npm install --production

COPY . .

CMD ["node", "index.js"]

下面是我的连接字符串
this.sequelize =  new Sequelize( 'postgres','postgres','admin',{'host':'db', 'dialect': 'postgres',"define": { "createdAt": "createdat","updatedAt": "updatedat"}, 'operatorAliases': operatorsAliases} );

无论我做什么更改,它始终连接到 127.0.0.1:5432 并收到以下错误:
web_1  | Unhandled rejection SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:5432
web_1 | at connection.connect.err (/usr/src/node_modules/sequelize/lib/dialects/postgres/connectionmanager.js:170:24)
web_1 | at Connection.connectingErrorHandler (/usr/src/node_modules/pg/lib/client.js:191:14)
web_1 | at emitOne (events.js:116:13)
web_1 | at Connection.emit (events.js:211:7)
web_1 | at Socket.reportStreamError (/usr/src/node_modules/pg/lib/connection.js:72:10)
web_1 | at emitOne (events.js:116:13)
web_1 | at Socket.emit (events.js:211:7)
web_1 | at emitErrorNT (internal/streams/destroy.js:66:8)
web_1 | at _combinedTickCallback (internal/process/next_tick.js:139:11)
web_1 | at process._tickCallback (internal/process/next_tick.js:181:9)
  • 尝试在连接字符串中保留域 db,与 docker-compose 文件
  • 中使用的引用相同
  • 保持所有连接打开 postgres.conf 文件。

  • 我错过了什么?已经坚持了一段时间了。
    谢谢

    最佳答案

    index.js

    const Sequelize = require('sequelize');
    const sequelize = new Sequelize("postgres", "postgres", "admin", {
    host: "db",
    dialect: "postgres",
    pool: {
    max: 9,
    min: 0,
    idle: 10000
    }
    });

    sequelize.authenticate().then(() => {
    console.log("Success!");
    }).catch((err) => {
    console.log(err);
    });

    Dockerfile - 与问题相同

    package.json
    {
    "name": "test",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "dependencies": {
    "sequelize": "",
    "pg": ""
    }
    }

    docker-compose.yml(重写版本)

    重要提示:如果您同时定义了镜像和 Dockerfile 以及构建,镜像优先并且不会使用您的 dockerfile 构建。
    version: "3.2"

    services:
    web:
    build:
    context : .
    dockerfile: Dockerfile
    networks:
    - examplenetwork
    ports:
    - "5000:5000"
    depends_on:
    - db

    db:
    image: postgres
    networks:
    - examplenetwork
    volumes:
    - postgresql:/var/lib/postgresql
    - postgresql_data:/var/lib/postgresql/data
    environment:
    - POSTGRES_DB=postgres
    - POSTGRES_USER=postgres
    - POSTGRES_PASS=admin

    networks:
    examplenetwork:

    volumes:
    postgresql:
    postgresql_data:

    关于node.js - 未处理的拒绝 SequelizeConnectionRefusedError : connect ECONNREFUSED 127. 0.0.1:5432 with dockers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58898478/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com