2017-05-25 10 views
1

私はtypeormを使ってnodegsにpostgresdbを接続しようとしています。typeormドッカーコンテナからpostgresを接続する

私はlocalhostのpostgresとnodejの両方でこれをやってみました。うまくいきました。しかし、postgresとnodejをドッキング・コンテナに入れると問題が発生します。

(Postgresのコンテナの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" 
    } 
    } 
] 

ありがとう

答えて

0

PostgreSQLのデフォルトポートはです。あなたのnodejs設定でそれを変更してください。ポートは、露光

はそれがあなたのローカルホスト(またはその他のIPアドレス)にそのポートをリンクするだけで、あなたのnodejsのために必要なないです:

ports: 
     - "5433:5433" 

あなたがそれらを削除することができます。

しかし、あなたはとにかく5433に耳を傾けるのpostgresする必要がある場合は、あなたには、いくつかのカスタマイズが必要になります。

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

うわー、私は愚かです。固定してくれてありがとう。 postgresのlocalhostインスタンスがポート5432を使用していたので意図的に5433にしましたが、何らかの理由でドッキングステーションのpostgresが自動的に5433を使用すると考えました。 –

関連する問題