Rails 5.0 beta-2 で Puma のコンフィグを適用させたい
Rails 4.2 以降は rails server コマンドで起動するサーバが localhost で立ち上がるため LAN 内の別マシンからアクセスさせたい場合は
bundle exec rails s -b 0.0.0.0
のようにコンフィグを設定する必要がありました。
Rails 5.0 からはデフォルトのサーバが Puma になるようですが beta-2 で試している限り上記コンフィグが必要な状況は変わっていないようです。
省略したい
毎回オプションをつけたくないので省略できないのかと思い config/puma.rb を次のように変更してみました。
#port ENV.fetch("PORT") { 3000 } bind "tcp://0.0.0.0:3000"
この状態で rails server を叩いたのですが、上記の設定は反映されません。しかしエラーにもならないので、どこかで設定が上書きされるか無視されているようです。
それならばと思い次のように記述してみました。
bundle exec rails s -C config/puma.rb
これはこれでコマンドが長く当初の趣旨からは外れてしまいますが、これならコンフィグを確実に読んでくれるはず…と思いきや -C オプションをつけると強制的にどこかに存在する rack/handler 以下を読むようになっており、ファイルがロードできないと怒られてしまいます。
解決策
と、いう話を同僚にしていたら回避可能なコマンドを探してきてくれました。
bundle exec pumactl start
これであれば config/puma.rb の設定を反映してくれるようです。
残った問題
しかし、上記コマンドで起動したローカルサーバは所謂 Rails の development モードのログを出力してくれません。出力を揃える方法は無いのか、もう少し調査してみます。