概要
Herokuでアプリケーションを公開=「デプロイ」する。
- Herokuにコミットする
① CLIでHerokuを操作するため、HerokuのCLIをインストールする。
herokuというコマンドが使用できる。
% brew tap heroku/brew && brew install heroku
②インストールできたか確認
% heroku --version
⇨ heroku/7.40.0 darwin-x64 node-v13.15.1
上記のように、バージョンが確認できれば、インストール成功!
③ Herokuにログインする
% heroku login --interactive
=> Enter your Heroku credentials.
# メールアドレスを入力し、エンターキーを押す
=> Email:
# パスワードを入力して、エンターキーを押す
=> Password:
⇨ Logged in as 登録したメールアドレス
上記のように表示されれば、ログイン成功!
- Heroku上にアプリケーションを作成する
該当のアプリケーションのディレクトリで行う。
...MacBook-Air frima-app % heroku create frima-app
下記のコマンドを入力し、正しく作成できたことを確認する。
% git config --list | grep heroku
「fatal: not in a git directory」が表示されなければ、作成完了!
- Heroku上でMySQLを利用可能にする
①データベースの設定をする
Herokuでは、使用するデータベースの設定が、デフォルトでPostgreSQLになっているため、
「ClearDBアドオン」を追加することで、HerokuでMySQLを利用できるように設定する。
(ClearDBアドオン: MySQLを使うためのツール)
% heroku addons:add cleardb
②
Ruby on Railsを使う場合は、MySQLに対応するGemについて考慮する。
% heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
% heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}
- Heroku上で非公開の値を暗号化する
credentials.yml.encファイルとmaster.keyファイルは、セットにすることで、中身を解読できるようになる。
① credentials.yml.encの中身を確認する。
% EDITOR="vi" bin/rails credentials:edit
「esc」→「:」→「q」→「enter」を押して credentials.yml.encを閉じる。
② Heroku上に、環境変数として、master.keyの値を設置する (Herokuへプッシュする前に)
% heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
「heroku config」:Heroku上で環境変数の参照・追加・削除などするためのコマンド
5.Herokuで使用する動作環境を設定する
Herokuには、Stack(スタック)という環境が用意されている。
% heroku stack:set heroku-18 -a frima-app
- Herokuで使用するNodeのバージョンを設定
Herokuの初期設定におけるNodeのversionと、自身のアプリにおいてインストールしたNodeのversionを一致させる。不一致だと、正常なデプロイが行えないため。
そのため、HerokuのNodeのversionを指定する。
① 「buildpack」を使用する。Herokuで様々な言語のアプリを扱える。
% heroku buildpacks:add heroku/nodejs
% heroku buildpacks:add heroku/ruby
% heroku buildpacks
⇨nodejsとrubyの2つがインストールできてれば成功!
② 使用するnodeのバージョンをpackage.jsonへ記述する
% node -v
v13.15.2
~省略~
"version": "0.1.0",
"devDependencies": {
"webpack-dev-server": "^3.10.3"
}, // カンマを記述
"engines" : {
"node": "13.15.2 " // nodeのバージョンを記述
}
}
③ ここまでの変更をコミットプッシュ
- Gitで管理しているリポジトリをHerokuに反映する
% git push heroku master
---今後、アプリに変更を加えた場合はここから----------------------------------------------
今後、開発環境でappに変更を加えた場合は、
% git add .
% git commit -m "後から見てわかりやすいコミット名"
% git push heroku master
- Heroku上でマイグレファイルを実行する
コードはHerokuに反映できたが、データベースにはマイグレーションの情報が反映されていないので、rails db:migrateを実行したい。Heroku上で実行したいので、
% heroku run rails db:migrate
- 公開を確認する
% heroku apps:info
公開されたアプリの詳細を確認できる。
* エラーが発生したら
% heroku logs --tail --app frima-app
これにより表示されるエラー文からエラーの原因を確認する