2017-08-15 49 views
1

我有一個新鮮生成的鳳凰應用程序,我試圖Dockerize它。Elixir和Docker

我遇到了以下問題: 如果我啓動鳳凰本地(mix phx.server)它工作正常(連接到本地主機PG) 如果我在PROD(MIX_ENV=prod mix phx.server)運行它,它連接到RDS

如果我在碼頭工人的/ dev模式(docker-compose up)運行我得到這個連接錯誤enter image description here

如果我在泊塢窗/生產模式下運行,我得到了同樣的錯誤

我估計泊塢不是本地連接是由於一些網絡問題(localhost vs docker host),但它在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沒有運氣。

藥劑並索要DATABASE_URL對正常prod.secret.exs DB配置

我甚至嘗試把一個PG容器到撰寫設置和連接它的頂部。 Elixir仍然要求本地主機。

在我的環境中沒有DATABASE_URL。

我試過傘應用程序一路香草鳳凰。根本沒有愛。

我已出口端口(如藥劑希望這樣)

回答

3

你必須告訴鳳凰對訪問數據庫的主機。這不是容器內部的localhost - Postgres在不同的容器中運行。從你的屏幕截圖看起來像你命名你的分貝容器postgres,這意味着你可以從你的鳳凰容器中打http://postgres你的分貝。更新您的連接詳細信息,以便本地使用postgres或將DATABASE_URL=postgres設置爲docker-compose.yml文件中的環境變量。

+0

我已經安裝prod.secret.exs指向AWS RDS prod沒有運氣;也直接鏈接到PG容器。 –

+0

在docker-compose.yml中接受爲DATABASE_URL的竅門。謝謝! –