繁体   English   中英

从typeorm docker容器连接postgres

[英]Connecting postgres from typeorm docker container

我正在尝试使用typeorm将postgres数据库连接到nodejs。

我试着用localhost中的postgres和nodejs做这个,它工作正常。 但是当我将postgres和nodejs放入docker容器时,我遇到了问题。

(对于postgres容器,docker docker inspect的“IPAdress”字段是172.19.0.3)

Nodejs出错:

web_1    | error: TypeORM connection error:  Error: connect ECONNREFUSED 172.19.0.3:5433

泊坞窗,compose.yml

services:
  web:
    build: .
    volumes:
      - ./:/app
    ports:
      - "9001:9001"
    links:
      - pg_db

  pg_db:
    image: postgres
    ports:
      - "5433:5433"
    env_file: 
      - docker.env

ormconfig.json

[
  {
    "name": "default",
    "driver": {
      "type": "postgres",
      "host": "pg_db",
      "port": 5433,
      "username": "postgres",
      "password": "test",
      "database": "testDB"
    },
    "autoSchemaSync": true,
    "entities": [
      "src/controller/entity/*.js"
    ],
    "cli": {
      "entitiesDir": "src/controller/entity"
    }
  }
]

谢谢

PostgreSQL的默认端口是5432 在nodejs config中更改它。

端口暴露是没有必要为您的NodeJS,这只是该端口链接到你的本地主机(或其他IP):

    ports:
      - "5433:5433"

你可以删除它们。

但是,如果你需要postgres听5433,你需要一些定制:

  pg_db:
    ...
    environment:
    - PGPORT=5433
    ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM