rails 独学して軽くにちゃんまとめつくる

読者です 読者をやめる 読者になる 読者になる

rails独学して軽く2ちゃんまとめビルダーをつくる。

rails tutorial読破→2chまとめビルダー作成→アメリカでインターンシップ→恋活SNSを作成・・・・・→音で感触をつくり感触をあつめたライブラリをつくる

Procfile ってどこにある?Procfile の作成からpumaの設定まで

rails で Heroku にアップロードしようとしたときこんなエラーがでた。 (git push heroku master)

remote: ###### WARNING:
remote:        No Procfile detected, using the default web server.
remote:        We recommend explicitly declaring how to boot your server process via a Procfile.
remote:        https://devcenter.heroku.com/articles/ruby-default-web-server
remote: 
remote: -----> Discovering process types
remote:        Procfile declares types     -> (none)
remote:        Default types for buildpack -> console, rake, web, worker

これはアップロードしようとしているサーバーが Webrick という並行処理ができないダメ製品なのでべつのものに変えたほうがいいよ。何を使うかは Procfile に書いておいてね、という忠告なのだ。公式には Puma というのを推奨している。

Procfile かいうのが書いてあるがどこを探してもみつからない。 これは自分で作成するものだ。ルートディレクトリ(Gemfile と同じディレクトリ)に作成する必要がある。

#./Procfile

web: bundle exec puma -C config/puma.rb

次に puma の設定をする。rails のバージョンが 5 以上の人は自動で作成されている。5 以下の人は config/puma.rb というディレクトリで作成して、こう記述する。

#config/puma.rb

workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5)
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'development'

on_worker_boot do
  ActiveRecord::Base.establish_connection
end

そうしてふたたび git push heroku master としたらエラーがなくなった。

Ruby on Rails チュートリアル:実例を使って Rails を学ぼう