Postgresqlの設定からRailsアプリケーションをherokuで動かすまで⑤
HerokuでRailsアプリの動作チュートリアル
HerokuのGetting Started onHerokuのページのTutorialの手順に沿って、RailsアプリケーションをHerokuにデプロイする流れを説明します。
前提条件
- herokuのアカウントを作成済み
- ruby 2.2.0 インストール済み (2015/06/31現在)
- Bundlerがインストール済み (gem instal bundler)
1. Herokuへのログイン
termainalで以下を入力します。
$ heroku login Enter your Heroku credentials. Email: 登録したe-mailの入力 Password (typing will be hidden): パスワード入力 Authentication successful.
2. Herokuが用意しているサンプルプログラムの準備
gitでサンプルプログラムを取得します。
$ git clone https://github.com/heroku/ruby-getting-started.git $ cd ruby-getting-started
3. サンプルアプリのデプロイ
以下を入力することで、Heroku上にデプロイするためのアプリを作成します。
$ heroku create Creating polar-inlet- .....
上記手順により、gitのremoteにherokuの項目が追加されています。 次に、herokuのremoteにアプリをpushします。
$ git push heroku master Fetching repository, done. .... // master branchをherokuというリモートにpush
上記手順でデプロイは完了です。実際に動作していることを確認するため以下を入力すると、heroku上にデプロイしたアプリがブラウザで開かれます。
$ heroku open // heroku アプリを開く(webブラウザーで、デプロイしたアプリ画面が開かれる)
4. ログを見る
以下のコマンドを入力することで、herokuのログを確認できます。
heroku logs --tail // 稼働しているアプリのログが表示される // Ctrl + C でストップ
5. Procfileの確認
Procfileは、アプリが起動時に実行したいコマンドを記述するファイルです。Procfileは、Railsプロジェクトのトップディレクトリに作成します。サンプルでは以下の通り定義されており、webサーバとしてpumaを利用するように設定されています。
web: bundle exec puma -C config/puma.rb
必要に応じて、コマンドを追加しますが、今回は特に変更はありません。
6. dynoの確認
dynoは、Procfileで指定したコマンドを動作させるlight weightなコンテナです。 psコマンドを利用することで、いくつのdynoを利用しちえるか確認することができます。
$ heroku ps === web (1X): `bundle exec puma -C config/puma.rb` web.1: idle 2015/06/21 16:00:01
必要に応じて、このdynoの数を調整する必要があります。
7. ローカルのGeimfileで指定した関連ファイルをインストール
次に、Heroku上で動かしたRailsアプリをLocal環境でも動作させます。 まず、以下のコマンドにより、Gemfileに記述された必要なモジュールをインストールします。
$ bundle install // 関連するgemのモジュールがインストールされる Using rake 10.4.2 Using i18n 0.7.0 Using json 1.8.2 Using minitest 5.6.1 Using thread_safe 0.3.5 Using tzinfo 1.2.2 Using activesupport 4.2.0 Using builder 3.2.2 Using erubis 2.7.0 Using mini_portile 0.6. ・・・
8. ローカルでサンプルアプリを動かす
次に、Databaseの設定を行います。Herokuでは基本的にPostgresqlを利用しますので、Local環境でもPostgresqlを利用するように設定を行います。この時、バックグラウンドでPostgresqlが動いていないと、DB作成などに失敗するので注意が必要です。postgresqlの起動に関してはこちらの記事を参照してください。
config/database.ymlの設定test、develop項目に関して以下の通り設定します。
// PostgresqlのDB作成権限をもつユーザ名とパスワードを指定します。 // ここでは、それぞれuser、fooを指定しています。 development: <<: *default database: ruby-getting-started_development username: user password: foo test: <<: *default database: ruby-getting-started_test username: user password: foo
以下のコマンドでデータベースの作成を行います。
// 事前にpostgresqlを起動していることを確認 $ bundle exec rake db:create db:migrate
次に、アプリの起動させます。
$ foreman start web
最後に、ブラウザで localhost:5000 にアクセスし、heroku openで開いたものと同様のRails アプリが起動していることを確認します。以下のような画面が開かれるとOKです。
次回の記事に関して
次回は、Postgresqlの設定からRailsアプリケーションをherokuで動かすまでの、最後の記事として、自前で作成したRailsアプリケーションをherokuにデプロイする手順に関して説明します。