我對Heroku上的一些dynos使用了Procfile
,但是對於我的本地開發和Heroku生產環境,我有不同的命令。如何在同一個Procfile中管理開發和生產設置?
但鑑於我有一個Procfile
,我該如何添加一個條件來檢查本地軌道環境是否是生產或開發?
這可能嗎?
我對Heroku上的一些dynos使用了Procfile
,但是對於我的本地開發和Heroku生產環境,我有不同的命令。如何在同一個Procfile中管理開發和生產設置?
但鑑於我有一個Procfile
,我該如何添加一個條件來檢查本地軌道環境是否是生產或開發?
這可能嗎?
這裏有幾個選項。
使用不同的Procfile
進行開發。如果您說Procfile.development
那麼您可以指定將它與heroku local -f Procfile.development
一起使用。
或者,切換到使用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_CHILD
和TERM_TIMEOUT
配置瓦爾。
本地您設定了他們在你.env
或在Heroku通過:
heroku config:set TERM_CHILD=1 TERM_TIMEOUT=7
我其實不用'heroku local'。如果我只使用普通的'rails s'和工頭等,我將如何指定使用'Procfile.development'? – marcamillion
'heroku local'只是'forego'上的一個包裝器 - 一個Go工具的實現,只要'工頭啓動-f Procfile.development',它就可以工作。 –
使用ENV瓦爾盧克:) – max
如何使用ENV瓦爾指定這樣的事情:'resque:ENV TERM_CHILD = 1 RESQUE_TERM_TIMEOUT = 7 QUEUE = \ * bundle exec rake resque:work'? – marcamillion