heroku - Foreman:在开发和生产中使用不同的Procfile

标签 heroku sinatra rack foreman shotgun

我有一个自制的 Sinatra 应用程序,我打算使用 Heroku 来托管它。

我在开发中使用 foreman 和 shotgun,并使用以下 Procfile:

web: shotgun config.ru -s thin -o 0.0.0.0 -p $PORT -E $RACK_ENV

它非常适合开发和生产。但问题是,我不想在生产中使用霰弹枪,因为它太慢了。

我们可以为开发和生产使用单独的 Procfile 配置吗?

最佳答案

您可以使用两个 Procfiles(例如 ProcfileProcfile.dev)并使用 foremans -f option选择一个不同的在开发中使用:

在 dev 中(Procfile.dev 包含您的 shotgun Web 进程):

foreman start -f Procfile.dev

在生产中,foreman start 将选取正常的 Procfile

或者,您可以使用脚本在应用程序中创建一个 bin 目录,以根据 $RACK_ENV 启动相应的 Web 服务器(我在 comment made by the creator of Foreman 中找到了这个想法) ,所以值得考虑)。

关于heroku - Foreman:在开发和生产中使用不同的Procfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11592798/

相关文章:

ruby - 在 Sinatra 中处理 POSTDATA

ruby-on-rails - 对于 Rails,为什么 Gem Devise 基于 Rack 很重要?

node.js - Heroku 503 服务不可用

angular - Heroku 部署问题 sh : 1: ng: not found?

ruby - `require ' CoffeeScript 时无法使用 Ctrl+C 停止 Sinatra'`

ruby - 在哪里存储许多类似的 sinatra 应用程序的配置

ruby - Rspec/Sinatra 模块化与经典风格

ruby - Rack::测试无法找到网络应用程序 cookie

ruby-on-rails - Heroku 在上传 Assets 时忽略 RACK_ENV= staging

python-3.x - Botocore 与 Heroku : botocore. 异常发生错误。NoCredentialsError:无法找到凭据