railsアプリをherokuにデプロイするための全手順

herokuのユーザー登録などは終わっている前提。

まずはHeroku CLIがインストールされているか確認しましょう。

$ heroku --version
bash: heroku: command not found

インストールされてないので、インストールします。

Heroku CLIにやり方は載ってます。コマンドが変わることもあるので、必ず公式を確認しましょう。

macの場合は

$ brew install heroku/brew/heroku

Ubuntu / Debianの場合は

$ wget -qO- https://cli-assets.heroku.com/install-ubuntu.sh | sh

windowsの場合は、Heroku CLIからインストールします(大変ですね)。

インストールできたか確認します。

$ heroku --version
heroku-cli/6.15.5 (linux-x64) node-v9.2.1

ログイン

$heroku login

ちなみに、Cloud9でやる場合は、herokuを操作するためのソフトウェアをインストールします。

wget -qO- https://cli-assets.heroku.com/install-ubuntu.sh | sh

heroku loginをするとメールアドレスとパスワードを聞かれるので、予め登録したものを答えれば大丈です。

ログインに成功するとメールアドレスが表示されます。

$heroku login
Enter your Heroku credentials.
Email:sample@gmail.com
Password:Password
Logged in as sample@gmail.com

ログインに成功したら。heroku createで、アプリケーション枠を作ります。

$heroku create
Creating app... done, ⬢ immense-chamber-761
https://sample.herokuapp.com/ <=コレがurl

アセットプリコンパイル

config/environments/production.rbを開く

省略
config.assets.compile = true <=falseをtrueにする

次に

rake assets:precompile RAILS_ENV=production

アセットプリコンパイルは、assetsを作業したら必ずherokuに送る前にやる。

コンソールにエラーを表示する

herokuでエラーになってもコンソールには表示されないのでgemをインストールする。

gem 'rails_12factor', group: :production

herokuに送る

$git add -A
$git commit -m "test"
$git push heroku master

herokuは自動時にデータベースを作成してくれるので、rake db:createは不要。

heroku run rake db:migrate RAILS_ENV=production

環境変数を設定

heroku config:add SECRET_TOKEN="$(bundle exec rake secret)"

ここまで、終われば、あとは、先ほどのurlにアクセスすればok。

herokuでよく使うもの

ログの確認

heroku logs -t

空のファイルを送信。以前と同じ内容を送るにはちょっと変更が必要。

git commit -m "for deploy heroku" --allow-empty

master以外のブランチから送る。

git push heroku develop:master

See Also