从typeorm docker容器连接postgres

时间:2017-05-25 17:21:43

标签: postgresql typescript docker typeorm

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

我尝试在localhost中使用postgres和nodejs这样做,并且它工作正常。但是当我将postgres和nodejs放入docker容器时,我遇到了问题。

(postgres容器的docker inspect中的" IP地址"字段为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"
    }
  }
]

由于

1 个答案:

答案 0 :(得分:0)

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

对于您的nodejs,端口公开,只是将该端口链接到您的localhost(或其他IP):

    ports:
      - "5433:5433"

您可以删除它们。

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

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