LoginSignup
0
0

More than 3 years have passed since last update.

Herokuでデプロイ

Posted at

WHY

デプロイすることも多くなり、手順を覚えるためのアウトプットの一環として書いていきます。
herokuでデプロイするにはまずアカウント作成とクレカ登録が必要ですがそこは省きます。


CLIのインストール

ターミナルでCLIをインストールしていく。
インストール後に「heroku --version」と打ち込み、バージョンが表示されれば成功。

brew tap heroku/brew && brew install heroku

heroku --version

ログイン

以下のコードを入力することでログインできる。
指示に従い、アカウント情報を入力する。

heroku login --interactive
  => Enter your Heroku credentials.
  => Email:
  => Password:

heroku create

デプロイしたディレクトリまで移動し、
Heroku上に公開するためのアプリケーションを作成する。続けてアプリ名を記入し、Heroku上でのアプリケーション名を決めることができる。
また、create後はgit config --list | grep herokufatal: not in a git directory以外が表示されれば成功。

cd ~/アプリケーションのディレクトリへ
pwd

heroku create アプリケーション名

git config --list | grep heroku

ClearDBアドオン

MySQLを使うためのツール。ClearDBというデータベースサービスが提供しているアドオンで、これを追加することで、HerokuでMySQLを使用できるようになる。

heroku addons:add cleardb

その他設定の変更

Ruby on Railsを使う場合は、MySQLに対応するGemについて考慮する必要があり、
・ClearDBデータベースのURLを変数heroku_cleardbに格納
・データベースのURLを再設定
をしなければならない

heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`

heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}

heroku config

Heroku上に、環境変数としてmaster.keyの値を設置しなければならない。
これは外部に漏らしたくない情報を扱うcredentials.yml.encファイルの暗号文を複合することができるmaster.keyファイルがデフォルトではGitに管理されないため。
Heroku上で環境変数の参照・追加・削除等をするheroku configコマンドを使用する。
また、heroku config環境変数を確認することができる。

heroku config:set RAILS_MASTER_KEY=`cat config/master.key`

heroku config

Stack

デプロイされたアプリケーションを読み取り正常に稼働させるための動作環境。
デフォルトのStackは「Heroku-20」
Rubyのバージョン2.6.5が動作するStackは「Heroku-18」

heroku stack:set heroku-18 -a アプリケーション名

プッシュ

Herokuへコミットをプッシュすることで、Herokuにアプリケーションの情報を追加できる。

git push heroku master

heroku run

マイグレートをしないとherokuのデータベースにはマイグレーションの情報が反映されていない。
rails db:migrateであればheroku run rails db:migrateと記述。

heroku run rails db:migrate

heroku apps:info

公開されたアプリケーションの詳細を見ることができ、webURLなどを確認することができる。

heroku apps:info

再度プッシュする場合

コードに変更が生じて再度プッシュを行う場合は次の3つのコードを順番に行う。

git add .

git commit -m "後から見てわかりやすいコミット名"

git push heroku master

ファイルの変更が特にない場合

環境変数だけ本番環境に反映させたい場合などは以下の通りにする。

git commit --allow-empty -m "空のcommit"

git push heroku master

herokuにはherokuのDBがあるということや、Gitとは違うherokuのプッシュがあるということを忘れずにこれからもデプロイしていこうと思います!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0