2016-02-24 46 views
0

我對Heroku上的一些dynos使用了Procfile,但是對於我的本地開發和Heroku生產環境,我有不同的命令。如何在同一個Procfile中管理開發和生產設置?

但鑑於我有一個Procfile,我該如何添加一個條件來檢查本地軌道環境是否是生產或開發?

這可能嗎?

+0

使用ENV瓦爾盧克:) – max

+0

如何使用ENV瓦爾指定這樣的事情:'resque:ENV TERM_CHILD = 1 RESQUE_TERM_TIMEOUT = 7 QUEUE = \ * bundle exec rake resque:work'? – marcamillion

回答

1

這裏有幾個選項。

  1. 使用不同的Procfile進行開發。如果您說Procfile.development那麼您可以指定將它與heroku local -f Procfile.development一起使用。

  2. 或者,切換到使用config vars進行重新設置。

例如,用Procfile爲:

resque: env TERM_CHILD=1 RESQUE_TERM_TIMEOUT=7 QUEUE=\* bundle exec rake resque:work 

它改變到:

resque: env TERM_CHILD=$TERM_CHILD RESQUE_TERM_TIMEOUT=$TERM_TIMEOUT QUEUE=\* bundle exec rake resque:work 

然後設置TERM_CHILDTERM_TIMEOUT配置瓦爾。

本地您設定了他們在你.env或在Heroku通過:

heroku config:set TERM_CHILD=1 TERM_TIMEOUT=7 
+0

我其實不用'heroku local'。如果我只使用普通的'rails s'和工頭等,我將如何指定使用'Procfile.development'? – marcamillion

+0

'heroku local'只是'forego'上的一個包裝器 - 一個Go工具的實現,只要'工頭啓動-f Procfile.development',它就可以工作。 –

相關問題