ローカル環境とサーバ環境で動作させる Procfile を変える
以前書いた、sinatra の LiveReload 環境の記事を整える記事なんですが、あの記事では Procfile に追記して foreman で guard も一緒に動作させるようにしていました。
[Procfile]
guard: bundle exec guard -i web: bundle exec ruby app.rb -p 5000
しかし、このままの状態だと heroku などのサーバへ push した際に guard のプロセスも実行されてしまいます。
こういう場合は以下のようなファイルを追加することでローカル環境とサーバ環境で参照する Procfile を切り分ける事が可能です。
[Procfile]
web: bundle exec ruby web.rb -p $PORT
[Procfile.development]
guard: bundle exec guard -i web: bundle exec ruby app.rb -p 5000
[.foreman]
procfile: Procfile.development
[.gitignore]
/.foreman /Procfile.development /Guardfile
.foreman ファイルを追加して、ローカル環境では Procfile.development を参照するようにし、サーバでは .foreman をしなければ Procfile が参照されます。
こうすることで .foreman の有無で動作する Procfile を切り分ける事が可能です。
いまはこんな感じで切り分けているんですが、もっといいやり方があったりするんだろうか。