首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Foreman:在开发和生产中使用不同的Procfile

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

Stack Overflow用户
提问于 2012-07-21 21:56:13
回答 4查看 20.7K关注 0票数 74

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

我在开发中使用工头和猎枪,使用以下Procfile:

代码语言:javascript
复制
web: shotgun config.ru -s thin -o 0.0.0.0 -p $PORT -E $RACK_ENV

它在开发和生产方面都很好用。但问题是,我不想在生产中使用散弹枪,因为它太慢了。

我们是否可以对开发和生产使用单独的Procfile配置?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-22 04:27:11

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

在开发中(Procfile.dev包含您的shotgun web进程):

代码语言:javascript
复制
foreman start -f Procfile.dev

在生产环境中,foreman start将拾取正常的Procfile

或者,你也可以在你的应用程序中创建一个bin目录,用一个脚本来根据$RACK_ENV启动合适的web服务器(这是我在comment made by the creator of Foreman中发现的一个想法,所以值得考虑)。

票数 150
EN

Stack Overflow用户

发布于 2018-10-19 01:26:04

@sharagoz对所选答案的评论,在我看来,是最好的选择,让你仍然可以使用foreman start而不添加额外的参数,并为Heroku保留你的Procfile。

要避免使用-f Procfile.dev参数,可以创建一个包含procfile: Procfile.dev的.foreman文件- Sharagoz

在我的应用程序根目录中,我创建了一个.foreman文件,正如注释所述

.foreman

代码语言:javascript
复制
procfile: Procfile.dev

Procfile文件

代码语言:javascript
复制
web: bundle exec puma -C config/puma.rb

Procfile.dev

代码语言:javascript
复制
web: bundle exec puma -C config/puma.rb
webpacker: ./bin/webpack-dev-server
票数 19
EN

Stack Overflow用户

发布于 2017-06-10 07:06:20

这里有一个用一个Procfile和环境变量来处理它的方法。我正在Heroku上使用这个。

设置您的环境:

代码语言:javascript
复制
export WEB_START_COMMAND='node index.js'
export WORKER_START_COMMAND='node worker.js'

Procfile:

代码语言:javascript
复制
web: eval '$WEB_START_COMMAND'
worker: eval '$WORKER_START_COMMAND'

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11592798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档