【问题标题】:How do I manage development and production settings in the same Procfile?如何在同一个 Procfile 中管理开发和生产设置?
【发布时间】:2016-02-24 07:17:20
【问题描述】:

我在 Heroku 上的一些 dyno 上使用了 Procfile,但我的本地开发和 Heroku 生产环境都有不同的命令。

但是鉴于我有一个Procfile,如何在检查中添加条件以查看本地 Rails 环境是生产环境还是开发环境?

这可能吗?

【问题讨论】:

  • 使用 ENV 变量 Luke :)
  • 如何使用 ENV 变量来指定如下内容:resque: env TERM_CHILD=1 RESQUE_TERM_TIMEOUT=7 QUEUE=\* bundle exec rake resque:work?

标签: ruby-on-rails ruby-on-rails-4 heroku procfile


【解决方案1】:

这里有几个选项。

  1. 使用不同的Procfile 进行开发。如果您说Procfile.development,那么您可以指定将其与heroku local -f Procfile.development 一起使用。

  2. 或者,切换到使用配置变量进行 resque 设置。

例如,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

【讨论】:

  • 我实际上不使用heroku local。如果我只使用我的常规rails s 和工头等,我将如何指定使用Procfile.development
  • heroku local 只是 forego 的一个包装器 - 工头的 Go 实现,只需执行 foreman start -f Procfile.development 即可。
猜你喜欢
  • 2016-04-07
  • 2012-05-26
  • 2012-07-20
  • 2020-08-05
  • 2012-10-08
  • 1970-01-01
  • 2013-02-21
  • 1970-01-01
相关资源
最近更新 更多