我有一个带有这样的Procfile的工头应用程序
web: bundle exec rails s
custom_process: bundle exec rake custom:process
faking_custom_process: bundle exec rake custom:faking_process
我希望运行custom_process
或faking custom_process
取决于我的需求:
foreman start # run web & custom_process
FAKING_PROCESS # run web & faking_custom_process
是的,我知道像foreman start -c faking_custom_process=0
一样跑步的能力,但这比我想象的要困难,对吗?
答案 0 :(得分:1)
工头没有选择跳过一个过程。我想如果你想运行其他进程,你需要扩展你的开始调用以做一些不同的事情。否则你只是告诉它运行零faking_custom_process
副本而不是其他任何东西:
foreman start -m web=1,custom_process=1,faking_custom_process=0
或伪造版本:
foreman start -m web=1,custom_process=0,faking_custom_process=1
你当然可以编写脚本,这样你就有两个运行这些不同版本的脚本。
另一种方法是使用环境中的变量来打开或关闭伪装(我不相信它更容易,但它是另一种选择):
web: bundle exec rails d
custom_process: PROCESS=$FAKING"process" && bundle exec rake custom:$PROCESS
普通foreman start
只会运行bundle exec rake custom:process
。
对于伪造等效物,你可以这样做:
export FAKING="faking_"
这意味着从foreman start
开始,它会调用bundle exec rake custom:faking_process
。
您可以通过以下方式清除FAKING
变量来恢复正常流程:
export FAKING=
您当然可以将其封装到shell脚本中。
答案 1 :(得分:0)
您可以使用.profile存储foreman start
的默认选项:
concurrency: web=1,custom_process=1,faking_custom_process=0
或使用快捷方式:
concurrency: all=1,faking_custom_process=0
然后你覆盖这个默认选项以切换到假进程:
foreman start -c all=1,custom_process=0