neutligenの日記

初心者が商用開発に挑む姿を綴ります。僕のような初心者の方に「こんな奴もいるんかー」と思って読んでもらい、コメントまで貰えたら幸いです。

開発のわだち(6):herokuでデプロイ

「herokuでデプロイ」

目標:herokuでアプリをデプロイする

目次:
1.herokuコマンドを使えるようにする
2.herokuでオンライン上にデプロイする

     

1.herokuコマンドを使えるようにする

rails tutorialで勉強したことのあるherokuをvagrant環境に導入します。 まずは、ここからheroku-toolbeltをインストールするコマンドをコピー。 (僕はSTANDALONEから行きました。参考にさせて頂いたサイトはここです。)

$ sudo yum install wget
# まずは"wget"コマンドを入手
$ sudo wget -O- https://toolbelt.heroku.com/install.sh | sh
# コピーしてきたコマンドを実行
$echo 'PATH="/usr/local/heroku/bin:$PATH"' >> ~/.bash_profile
# herokuコマンドのパスを通す(環境に合わせて~/.bash_profileとした)
$ source ~/.bash_profile
# 書き足したスクリプトを実行
$ heroku version
# バージョン確認

以上でherokuコマンドが使えるようになりました。


2.herokuでオンライン上にデプロイする

railsのアプリをherokuで運用する場合、production環境にpgとrails_12factorのgemを入れる必要があるので、以下の通りgemファイルを修正します。 二つのgemを指定している理由はherokuのrails4.x向けチュートリアルにあります。
Gemfile

source 'https://rubygems.org'
...中略
group :production do
    gem 'pg'
    gem 'rails_12factor'  
end

Gemfileを変更したのでGemfile.lockを更新します。

$ bundle update
# Gemfile.lockを更新。もしエラーが出たら先に"bundle install --without production"してproduction環境を分けちゃう。
$ bundle install --without production
# productionグループに設定したgemはdevelop環境にはインストールしないという意味のオプション

herokuにデプロイするのはgitにcommitされたバージョンなので必ずコミットします。 (自分はコミットし忘れて結構ハマりました。。。)

$ git checkout master
$ git add -A
# "git add ."と"git add -u"を同時に行い削除も含めた全変更をステージング
$ git commit  -m "herokuでデプロイ用"

herokuにログインしてsshキーを登録します。 事前にherokuのwebサイトからアカウントを取得しておく必要がありますが、それは割愛。

$ heroku login
# アカウント認証が求められるので入力。
$ heroku keys:add
# sshキーを登録

herokuにdyno(デプロイ用のコンテナ?)を作成して、masterブランチにコミットされている内容をherokuのdynoにプッシュします。

$ heroku create
$ git push heroku master 
# デプロイ完了!
$ git config --list | grep heroku
# これでgit config上に登録されたことを確認
$ heroku rename "アプリの名前"
# アプリの名前はheroku上でユニークになる必要があります。

以上でデプロイ完了です。herokuはすごい!w

環境

ホストOS: MacOSX 10.11.3
VirtualBox: 5.0.14
Vagrant: 1.7.4
ゲストOS: CentOS 7

ゲストOSの環境

Apache: 2.4.6
ruby: 2.2.1p85
Rails: 4.2.6