【rails】foremanでサーバーをまとめて起動する

※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

立ち上げているものが多すぎる

開発を進めていく中で、現在いくつものサーバーなどが立ち上がっている

  • rails server
  • webpacker
  • redis server
  • sidekiq

立ち上げるのが多すぎる、立ち上げ忘れることがある

foremanを使って、一気に立ち上げられるようにする


foremanのインストール

ターミナル画面でインストールする

gem install foreman

起動させたい処理を書く

Procfile.devを作成

worker: bundle exec sidekiq -C config/sidekiq.yml
redis: bundle exec redis-server /usr/local/etc/redis.conf
webpacker: ./bin/webpack-dev-server

実際に起動してみる

起動させたいものが「started」と並んでいる

foreman start -f Procfile.dev

# =>
21:18:40 worker.1    | started with pid 54817
21:18:40 redis.1     | started with pid 54818
21:18:40 webpacker.1 | started with pid 54819

↑の続きに大量のログが流れる

rails serverをforemanで立ち上げると、一部動かないことがあるので除外する


Herokuでもworkerを動かす

Procfileworkerの設定を追加

web: bundle exec puma -C config/puma.rb
worker: bundle exec sidekiq
release: bundle exec rake db:migrate

デプロイして、Herokuで以下の設定をしておく

#DAY10