DATABASE_URL
127.0.0.1
を指します 、これはループバックアダプタです(詳細はこちら)。これは「自分自身につながる」という意味です。
同じホストで両方のアプリケーションを(Dockerを使用せずに)実行すると、両方とも同じアダプター(localhost
とも呼ばれます)でアドレス指定できます。 。
コンテナで両方のアプリケーションを実行する場合、以前のように両方がローカルホスト上にあるわけではありません。代わりに、web
をポイントする必要があります db
へのコンテナ docker0
上のコンテナのIPアドレス アダプター-docker-compose
あなたのためのセット。
変更:
127.0.0.1
CONTAINER_NAME
へ (例:db
)
例:
DATABASE_URL: postgres://username:[email protected]:5432/mydatabase
に
DATABASE_URL: postgres://username:[email protected]:5432/mydatabase
これはDockerリンクのおかげで機能します:web
コンテナにはファイルがあります(/etc/hosts
)db
を使用 db
が指定するIPを指すエントリ コンテナがオンになっています。これは、ホスト名を解決しようとしたときにシステム(この場合はコンテナー)が最初に確認する場所です。