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

Rails Webook

自社のECを開発している会社で働いています。Rails情報やサービスを成長させる方法を書いていきます

無料枠内でのHerokuの準備とデプロイ(Mac 10 + Rails 4.2 + MySQL 5.6)

インフラ Heroku

f:id:nipe880324:20150314010758j:plain

無料枠内でのHerokuの使うための準備とデプロイの流れについて簡単にまとめました。
環境は次の通りです。

動作確認

  • Mac OS X 10 Yosemite
  • Ruby 2.2.1
  • Rails 4.2
  • MySQL 5.6
  • heroku-toolbelt 3.40.6

目次

  1. Herokuの準備
  2. Herokuへデプロイ


1. Herokuの準備

Herokuアカウントを作成する
Heroku | Cloud Application Platform

Heroku Toolbeltをインストール

$ brew install heroku-toolbelt

Herokuにローカルの公開鍵(~/.ssh/id_ras.pub)を登録

$ heroku keys:add



2. Herokuへデプロイ

既にRailsのアプリがあることが前提です。
また、database.ymlを下記のようにしておくことで、環境変数で値を設定できる世にしておきます。

# config/database.yml

production:
  adapter:  mysql2   # postgresの場合はadapterをpostgresql
  encoding: utf8
  database: <%= ENV['DB_NAME'] %>
  username: <%= ENV['DB_USERNAME'] %>
  password: <%= ENV['DB_PASSWORD'] %>
  host:     <%= ENV['DB_HOSTNAME'] %>
  port:     <%= ENV['DB_PORT'] %>

Herokuにコマンドライン上でログイン

$ heroku login

Herokuアプリを作成

$ cd my-project/
$ heroku apps:create [app_name]
# ※ app_nameは小文字で始まり、小文字、数字、-のみしかつかえません


Herokuのリモートリポジトリを確認

$ git remote -v
heroku https://git.heroku.com/mysterious-crag-1792.git (fetch)
heroku  https://git.heroku.com/mysterious-crag-1792.git (push)
origin  git@github.com:nipe0324/trough.git (fetch)
origin  git@github.com:nipe0324/trough.git (push)


Herokuのリモートリポジトリが適切でない場合は、下記コマンドで設定

$ heroku git:remote -a [APP_NAME]


無料のDB(※)を追加する

# MySQLの場合
$ heroku addons:create cleardb:ignite

# PostgreSQLの場合
$ heroku addons:create heroku-postgresql

※ 無料ですが、クレジットカードの登録が必要です。また、5MB以上で自動でデータが消える?らしいです。

HerokuのアプリにDB情報の環境変数を設定する

# 設定を確認する
$ heroku config
# DB接続の書式 mysql://[username]:[password]@[hostname]/[db_name]?reconnect=true

# 環境変数を設定する
$ heroku config:add DB_NAME="[db_name]"
$ heroku config:add DB_USERNAME="[username]"
$ heroku config:add DB_PASSWORD="[password]"
$ heroku config:add DB_HOSTNAME="[hostname]"
$ heroku config:add DB_PORT="3306"
# postgresの場合DB_PORTは5432

# 設定できたことを確認する
$ heroku config


ローカルリポジトリをHeorkuへプッシュ(デプロイ)

$ git push heroku master


Heroku上でコマンドの実行(Railsの場合は以下の通り)

$ heroku run rake db:migrate

# 必要ならシードデータもいれておく
$ heroku run rake db:seed

デプロイしたアプリをブラウザで開く

$ heroku open


デプロイしたアプリのログ確認

$ heroku logs


以上です。