从typeorm docker容器连接postgres

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

我试着在localhost中同时使用postgres和nodejs,它工作正常。 不过,当我把postgres和nodejs放到docker容器时,我遇到了问题。

(Docker docker inspect postgres容器中的“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 。 在您的nodejsconfiguration中更改它。

端口公开对于您的nodejs来说并不是必需的,也就是只将该端口链接到本地​​主机(或其他IP):

  ports: - "5433:5433" 

你可以删除它们。

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

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