Railsメモ(33) : アプリをHerokuへデプロイする
前回Herokuへのデプロイ手順を確認したので、チュートリアルにあったサンプルアプリを参考に試作アプリをデプロイしてみる。
Gemfileの編集
Gemfile
にはRubyのバージョンを明記して下記gemを追加する。pg
はPostgreSQL接続用のgem、rails_12factor
はログを標準出力に変更したり、静的アセットをHeroku向けに調整するgem、puma
はアプリケーションサーバのgem。
Gemfile
を変更したらbundle install
しておく。
ruby '2.2.3' gem 'pg' gem 'rails_12factor', group: :production gem 'puma'
なお、データベースは既にSQLite3からPostgreSQLへ変更しているのでローカルでの確認も可能。
wonderwall.hatenablog.com
設定ファイルの追加
サンプルアプリからProcfile
とconfig/puma.rb
をコピーする。それぞれの内容は以下の通り。
ちなみにPostgreSQLへの接続はHerokuが適切に処理してくれるようなのでconfig/database.yml
にProduction用の設定を追加しなくてもよい。
Procfile
web: bundle exec puma -C config/puma.rb
config/puma.rb
workers Integer(ENV['WEB_CONCURRENCY'] || 2) threads_count = Integer(ENV['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 # Worker specific setup for Rails 4.1+ # See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot ActiveRecord::Base.establish_connection end
ローカルで動作確認
一応
heroku local
で問題なく動作することを確認しておく。git commit
Herokuにpushできるように、これまでの変更を
git commit
しておく。デプロイ
最初にHerokuにログインする。
$ heroku login Enter your Heroku credentials. Email: xxxxx@example.com Password (typing will be hidden): Authentication successful.
次にHerokuにアプリを作成する。引数を何も指定しないとランダムな名前になるので、使われてなさそうなアプリ名を指定する。
$ heroku create billboard-hot100 Creating billboard-hot100... done, stack is cedar-14 https://billboard-hot100.herokuapp.com/ | https://git.heroku.com/billboard-hot100.git Git remote heroku added
Herokuにpushする。
$ git push heroku master … remote: https://billboard-hot100.herokuapp.com/ deployed to Heroku remote: remote: Verifying deploy... done. To https://git.heroku.com/billboard-hot100.git * [new branch] master -> master
DBのマイグレーション、データ追加などを実行する。
$ heroku run rake db:migrate $ heroku run rake db:seed_fu
これでデプロイが完了。アプリのURLにアクセスすれば動作していることが確認できる(ちなみにアプリはあくまで試作なので動作やデータが正しくない部分あり)。
このアプリのDB使用量を確認してみると、リミット10,000行のうち約7,000行を使っているので無料枠内ではデータの追加は難しそう。また、しばらくアクセスがないとHerokuがスリープ状態に移行するのでアクセスしても起動するまでに時間がかかっているのがわかる。
$ heroku pg === DATABASE_URL Plan: Hobby-dev Status: Available Connections: 3/20 PG Version: 9.4.4 Created: 2015-09-02 10:41 UTC Data Size: 7.8 MB Tables: 4 Rows: 6815/10000 (In compliance) Fork/Follow: Unsupported Rollback: Unsupported Add-on: postgresql-xxxxx-xxxx
- 作者: すがわらまさのり,前島真一,近藤宇智朗,橋立友宏
- 出版社/メーカー: 技術評論社
- 発売日: 2014/06/06
- メディア: 大型本
- この商品を含むブログ (8件) を見る