2017-03-11 14 views
3

ノードを実行している別のドッカーサービスからデフォルトのPostgresイメージに接続できません& Sequelize。DockerでPostgresコンテナに接続できませんSequelizeから作成

Host: 0.0.0.0 
Port: 5432 
User: guy 
Password: password 
Database: engauge 

私は、コンテナの私の設定が間違っていると私はdocker-compose --buildを実行したとき、私は、接続情報を使用して、私のデータベースに接続できないためにも、おそらく私の接続情報があまりにも間違っていると仮定しています私はこの

version: '2' # specify docker-compose version 

# Define the services/containers to be run 
services: 
    web: # name of the first service 
    build: . # specify the directory of the Dockerfile 
    ports: 
     - "3000:3000" # specify port forewarding 
    links: 
     - database 
    database: # name of the third service 
    image: postgres # specify image to build container from 
    ports: 
     - "5432:5432" # specify port forewarding 
    environment: 
     - POSTGRES_USER:'guy' 
     - POSTGRES_PASSWORD:'password' 
     - POSTGRES_DB:'engauge' 
012のように見えるYMLファイルを実行しています

Unable to connect to the database: { SequelizeConnectionRefusedError: connect ECONNREFUSED 0.0.0.0:5432 
at /usr/src/app/node_modules/sequelize/lib/dialects/postgres/connection-manager.js:98:20 

エラーメッセージがあります

そして、私のWebサービスの中から、私の接続がこの

const sequelize = new Sequelize('postgresql://guy:[email protected]/engauge'); 
+0

あなたは0.0.0.0でしか聞くことができません、それに接続することはできません。 127.0.0.1を試しましたか? (またはコンテナのIPアドレスが何であれ)。 – kennytm

答えて

6

のように見える0.0.0.0は、それがすべてのインターフェイス上でリッスンするために使用されます、リスニング・アドレスであり、あなたがに接続するIPではありません。接続文字列に、接続するホスト名のサービス名を指定します(ケースdatabase)。

+0

ありがとうございます!また、変更を加えた後、既存のボリュームとコンテナをクリアしなければならないと付け加えます。 –

+0

上記のボリュームは表示されません。作成すると、 'docker-compose up -d'を実行するだけで新しいコンテナ設定を適用できます。通常、どの設定が変更されたかを確認し、必要なコンテナを再作成するほどスマートです。 – BMitch

関連する問題