Engineer Llfe Dogear

エンジニアリング活動におけるメモやTipsを書くブログ

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です。 f:id:dogear11:20150627150207p:plain

次回の記事に関して

次回は、Postgresqlの設定からRailsアプリケーションをherokuで動かすまでの、最後の記事として、自前で作成したRailsアプリケーションをherokuにデプロイする手順に関して説明します。