2012-03-21 77 views
10

我希望工頭gem使用我的開發環境文件中提供的PORT值,而不是使用自己的值。我的文件設置如下圖所示:爲什麼工頭gem忽略PORT環境變量?

  1. bash腳本啓動領班:

    工頭開始-e development.env

  2. 的development.env文件內容:

    PORT = 3000

  3. Procfile內容

    網站:束EXEC軌服務器-p薄$ PORT -e $ RAILS_ENV $ 1

開發服務器最終開始在端口5000,我知道我可以開始與--P 3000工頭強迫它使用那個港口。但是這打破了env文件的目的。

有什麼建議嗎?

回答

10

我知道這是一箇舊帖子,但它花了我一段時間才弄清楚,所以不妨在這裏添加一個註釋。

工頭根據您在Procfile中定義服務的位置遞增PORT。

說,我們的港口環境變量設置爲3000。

在我們的第一個Procfile例如彪馬將在3000端口上運行:

web: bundle exec puma -q -p $PORT 
worker: bundle exec rake jobs:work 

但在我們的第二Procfile它將爲上港3100運行第二行使用PORT變量。

worker: bundle exec rake jobs:work 
web: bundle exec puma -q -p $PORT 

不知道爲什麼,我想阻止不同的進程試圖採取相同的端口。

+2

整蠱!非常感謝您發佈您的解決方案。 – 2015-03-20 01:34:08