Collegamento di postgres dal contenitore docker typeorm

Sto cercando di colbind un db postgres a nodejs usando typeorm.

Ho provato a fare questo con entrambi postgres e nodejs in localhost e funzionava bene. Tuttavia ho problemi quando poso postgres e nodejs in contenitori docker.

(Il field "IPAdress" nel docker inspect dock per il contenitore postgres è 172.19.0.3)

Errore da Nodejs:

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

window mobile-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" } } ] 

Grazie

La port predefinita di PostgreSQL è 5432 . Modificarlo nella configuration di nodejs.

L'esposizione della port non è necessaria per i nodes, che è solo per colbind quella port al tuo host locale (o altri IP):

  ports: - "5433:5433" 

È ansible rimuoverli.

Ma, se vuoi ascoltare i postgres 5433 comunque, ti servirà alcune personalizzazioni:

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