はじめに
プロダクト制作お疲れ様でした。いよいよリリースですね...!
早速リリースして、周りの人に使ってもらいましょう!
ゴール
本記事のゴールは、Herokuを用いたリリースの手順について理解し、実際にリリースを完了させることです。
Herokuとは、アプリケーションの開発から実行、運用までのすべてをクラウドで完結できる PaaS(サービスとしてのプラットフォーム)です。
前提
Herokuは2022年の8月から、デプロイが有料になりました。
ただ、学生の場合「github for students」を使うことで、学生の間は実質無料でデプロイ、運用ができます。
もし、学生で github for students に加入していない場合、こちらの記事などを参考にして GitHub Student Developer Pack に登録してからリリースを進めることをオススメします。
手順0:自分のプロダクトの階層に移動する
まずは、自分のプロダクトの階層に移動します。
いつも通り、ターミナルで以下のコマンドを実行して階層を移動しましょう。
$ cd 自分のプロダクトがあるところまでのパス
例えば、Desktopにrails_appというプロダクトがある場合、以下のように実行します。
$ cd Desktop/rails_app
手順1:herokuを使えるようにする
ターミナルで、以下を実行してheroku CLIをインストールします。
$ brew install heroku/brew/heroku
インストールができたら、以下のコマンドでバージョンを確認して何かしらのバージョンが表示されたらインストール成功です!
$ heroku --version
以下のように、バージョンが出力されたらOKです。
› Warning: Our terms of service have changed: https://dashboard.heroku.com/terms-of-service
heroku/8.4.2 darwin-x64 node-v16.19.0
手順2:Gemfileの編集
Gemfileを、herokuのサーバ上で動くように編集していきます。
まず、Gemfileの9行目付近にある以下の記述をコメントアウトします。
gem 'sqlite3', '~> 1.4'
# gem 'sqlite3', '~> 1.4'
次に、Gemfileの31行目付近にある以下の記述を変更します。
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end
group :development, :test do
gem 'sqlite3' # 開発環境ではsqlite3を利用
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end
最後に、以下の記述をそのままGemfileの最後の行に追加します。
group :production do
gem 'pg'
end
Gemfileを書き換えて保存したら、ターミナルで以下のコマンドを実行してGemfileの変更を反映させましょう。
$ bundle install --without production
手順3:database.ymlの編集
次は、config/database.ymlを編集します。
以下のように、productionの項目を変更します。
ymlファイルのインデント(字下げ)は必ず半角スペース2つで行い、全角の空白は使わないように注意してください。エラーの原因になります。
production:
<<: *default
database: db/production.sqlite3
production:
<<: *default
adapter: postgresql
encoding: unicode
pool: 5
手順4:config/environments/production.rbの編集
これが最後の編集です。もうひと踏ん張り頑張りましょう!
config/environments/production.rb の31行目付近を以下のように編集します。
config.assets.compile = false
config.assets.compile = true
手順5: heroku CLI で heroku にログインする
次は、heroku login コマンドを利用してherokuにログインします。
$ heroku login
› Warning: heroku update available from 8.4.2 to 8.7.1.
heroku: Press any key to open up the browser to login or q to exit:
上のように「heroku: Press any key...」と表示されたら、何かしらのキーを押すとherokuのログイン画面に飛びます。
「Log in」を押してログインし、以下のようにログイン完了画面が出たらログイン成功です。
このとき、github for studentsに登録している場合、登録したメールアドレスでログインするようにしてください。
上の画面になったらウィンドウを閉じてターミナルに戻りましょう。
次に、heroku上にアプリケーション用のサーバを作成します。
アプリの名前はurlになるものです。半角英字なのはもちろんですが、使えない記号(_など)もあるので、シンプルなものにしておきましょう。また、すでに同じ名前のurlがある場合使えないので、他の名前を選びましょう。
ちなみにアプリの名前を空欄にすると自動生成してくれます。
heroku create 好きなアプリの名前
次に、herokuでrubyとnode.jsを使えるように設定します。
(herokuのダッシュボード)[https://dashboard.heroku.com/apps]にアクセスし、先ほど作成したアプリ名をクリックします。(以下の図だとrelease-test)
アプリ名をクリックし、「Settings」をクリックします。
少し下にスクロールし、Add Buildpack を押して、nodejsとrubyを追加します。
以下の写真のようになれば完了です。
上から
- heroku/nodejs
- heroku/ruby
という順番になるように注意してください。
手順6:herokuにpushしよう
必ず、自分のプロダクトの階層にいることを確認してから実行してください。
まずは、gitの設定ファイルを作成します。ターミナルで以下のコマンドを実行してください。
$ git init
次に、gitにファイルを登録します。ターミナルで以下のコマンドを順番に実行します。
$ git remote
$ git add -A
$ git commit -m "Release to heroku"
ここで初めてgitを使ってコミットした人は、githubに登録したemailとusernameの入力を求められる場合があるので、入力します。
以下のコマンドでデプロイします。(あともう一息です...!)
$ git push heroku master
エラーが出た方はこちらの記事などを確認してエラーを解決しましょう。
以下のように出力されたら、herokuへのpushは完了です!
remote: Verifying deploy... done.
手順7:画像投稿機能などをherokuで使えるようにしよう
画像投稿機能や、他のAPIキーなどを.envファイルに記述している場合、herokuで値を登録します。
.envファイルに何も記述していない場合、この手順は飛ばしてOKです。
画像投稿機能を実装している場合は更に追加で以下のコマンドを実行してください。
(Cloudinaryの認証が済んでいない人は、画像投稿ができないので、このタイミングで済ませておきましょう。認証したかどうか思い出せない人はメンターに相談してみましょう。)
(xxxxxxxxxxのところはCloudinaryのマイページで取得した自分のキーに書き換えておいてください)
$ heroku config:set CLOUD_NAME=xxxxxxxxxx
$ heroku config:set CLOUDINARY_API_KEY=xxxxxxxxxx
$ heroku config:set CLOUDINARY_API_SECRET=xxxxxxxxxx
また、他のAPIキーを.envファイルに記述している場合も、上記と同様の作業にheroku上で値を登録しましょう!
手順8:herokuでDBを作成する
herokuのダッシュボードにアクセスし、自分のデプロイするアプリを選択してから「Resources」タブを開きます。
「Find more add-ones」を押し、たくさんある中のHeroku Pistgresを選択します。
Plans & Pricing で、使いたいDBを選択します。
ここでは一番安いプランのMiniを選ぶことにします。
右上の「Install Heroku Postgres」を押します。
App to provision to に、先程作成した自分のアプリ名を入力します。
「Submit Order Form」を押して、DBの作成は完了です。
手順9:heroku上でマイグレートする
今回はデータベースを使ったアプリケーションを公開するので「migrate」で本番環境のデータベースを更新します。(migrationファイルを基に本番環境のデータベースが構築されます)
ターミナルで以下を実行します。
$ heroku run rails db:migrate
以下のように表示されたらマイグレートは成功です。
Running rails db:migrate on ⬢ release-test... up, run.3599 (Eco)
また、seedファイルを作成している人は、以下を実行しましょう。
$ heroku run rails db:seed
手順10:実際にアクセスしてみよう
実は、ここまででアプリの公開は完了しています。
実際にアクセスしてみましょう!
$ heroku open
表示されましたか?
お疲れ様でした!これでデプロイは完了です🎉
再デプロイ
リリース後に、アプリを改善して、改善版をもう一度リリースしたいときがあると思います。その場合は、以下の手順で行います。
$ git add .
$ git commit -m "変更コメント"
$ git push heroku master
以上です!再デプロイは簡単に行えます。