-->

在开发和生产使用不同的Procfile(Use different Procfile in

2019-06-26 10:45发布

我有我打算使用Heroku的举办成为一个自制的西纳特拉应用。

我使用的工头和猎枪的发展,有以下Procfile:

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

它的伟大工程具有开发和生产。 但事实是, 我不想在生产中使用猎枪 ,因为它是太慢了。

我们可以使用不同的Procfile配置两个开发和生产线?

Answer 1:

你可以使用两个Procfiles (如ProcfileProcfile.dev ),并使用foreman小号-f选项 ,选择在开发中使用不同的一种:

在DEV( Procfile.dev包含您的shotgun网页的过程):

foreman start -f Procfile.dev

在生产中, foreman start将拿起正常Procfile

另外,您可以创建一个bin在您的应用程序目录与脚本启动取决于相应的Web服务器$RACK_ENV (一个想法,我在发现由工头的创建者作出评论 ,所以值得考虑)。



Answer 2:

所选答案@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


Answer 3:

这里有一种方法用一个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'

在您的服务器和开发环境上出口不同的启动命令。



Answer 4:

对于那些仍在寻找这一点,根据文档 foreman已经不再需要。 你可以简单地使用:

heroku local -f Procfile.dev



文章来源: Use different Procfile in development and production