我有我打算使用Heroku的举办成为一个自制的西纳特拉应用。
我使用的工头和猎枪的发展,有以下Procfile:
web: shotgun config.ru -s thin -o 0.0.0.0 -p $PORT -E $RACK_ENV
它的伟大工程具有开发和生产。 但事实是, 我不想在生产中使用猎枪 ,因为它是太慢了。
我有我打算使用Heroku的举办成为一个自制的西纳特拉应用。
我使用的工头和猎枪的发展,有以下Procfile:
web: shotgun config.ru -s thin -o 0.0.0.0 -p $PORT -E $RACK_ENV
它的伟大工程具有开发和生产。 但事实是, 我不想在生产中使用猎枪 ,因为它是太慢了。
你可以使用两个Procfiles
(如Procfile
和Procfile.dev
),并使用foreman
小号-f
选项 ,选择在开发中使用不同的一种:
在DEV( Procfile.dev
包含您的shotgun
网页的过程):
foreman start -f Procfile.dev
在生产中, foreman start
将拿起正常Procfile
。
另外,您可以创建一个bin
在您的应用程序目录与脚本启动取决于相应的Web服务器$RACK_ENV
(一个想法,我在发现由工头的创建者作出评论 ,所以值得考虑)。
所选答案@sharagoz的评论,在我看来,是让你能继续使用的最佳选择foreman start
无需增加额外的参数,并保持你的Procfile分开了的Heroku。
为了避免您可以创建一个.foreman文件-f参数Procfile.dev
procfile: Procfile.dev
在里面- Sharagoz
在我的应用程序的根目录我创建了一个.foreman
文件和注释状态
。领班
procfile: Procfile.dev
Procfile
web: bundle exec puma -C config/puma.rb
Procfile.dev
web: bundle exec puma -C config/puma.rb
webpacker: ./bin/webpack-dev-server
这里有一种方法用一个Procfile和环境变量来处理它。 我用这在Heroku。
设置环境:
export WEB_START_COMMAND='node index.js'
export WORKER_START_COMMAND='node worker.js'
该Procfile:
web: eval '$WEB_START_COMMAND'
worker: eval '$WORKER_START_COMMAND'
在您的服务器和开发环境上出口不同的启动命令。
对于那些仍在寻找这一点,根据文档 foreman
已经不再需要。 你可以简单地使用:
heroku local -f Procfile.dev