从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 ...