2017-08-15 13 views
1

私は新しく生成されたフェニックスのアプリを持っており、私はそれをドッキングしようとしています。エリクサーとドッカー

私は、次の問題に実行している:私はローカルでフェニックスをブートする場合は、私がPRODで、それを実行するとした場合、それはRDS

に接続する(MIX_ENV=prod mix phx.server) (PGをlocalhostに接続している)、それが正常に動作します(mix phx.server) 私はドッカーがローカルに接続していない把握私はドッカー/ PRODモードで実行する場合enter image description here

は、私は同じエラー

に取得し、この接続エラーが発生しますドッカーは/ devモード(docker-compose up)で実行するいくつかのネットワークの問題が原因であります(localhost対dockerホスト)が、prodで実行しているときにlocalhostを探します。

が試み:

`docker-compose -f docker-compose.yml -f docker-compose.prod.yml up` 
`MIX_ENV=prod docker-compose -f docker-compose.yml -f docker-compose.prod.yml up` 

私はフェニックス1.3を試してみましたが、運と最新のRCました。

エリクサーは私もコンセットアップにPGコンテナを入れてみましたし、それをリンクさ

通常prod.secret.exs DBの設定の上にDATABASE_URLを求めるん。 ElixirはまだLocalhostを求めています。

いいえ、DATABASE_URLはenvです。

私はバニラフェニックスの傘のアプリを試してみました。愛は全くありません。あなたは上のデータベースにアクセスするためにどのホストフェニックスに伝える必要があり

答えて

3

(エリクサーがいることを望んでいるとして)

私はPORTを輸出しています。これはコンテナ内にlocalhostではありません.Postgresは別のコンテナで実行されています。あなたのスクリーンショットから、あなたのdbコンテナpostgresの名前を付けたように見えます。つまり、あなたのPhoenixコンテナの内側からhttp://postgresにあなたのdbを打つことができます。ローカルの接続情報を更新してpostgresを使用するか、docker-compose.ymlファイルの環境変数としてDATABASE_URL=postgresを設定してください。

+0

私はprod.secret.exsをAWS RDSをprodの中で運がないことを指すようにセットアップしました。 PGコンテナに直接リンクすることもできます。 –

+0

docker-compose.ymlでDATABASE_URLとして受け入れることは、そのトリックでした。ありがとう! –