Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 1 year has passed since last update.

herokuリリース手順(for Mac)

Posted at

はじめに

プロダクト制作お疲れ様でした。いよいよリリースですね...!
早速リリースして、周りの人に使ってもらいましょう!

ゴール

本記事のゴールは、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行目付近にある以下の記述をコメントアウトします。

Gemfile(変更前)
gem 'sqlite3', '~> 1.4'
Gemfile(変更後)
# gem 'sqlite3', '~> 1.4'

次に、Gemfileの31行目付近にある以下の記述を変更します。

Gemfile(変更前)
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
Gemfile(変更後)
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の最後の行に追加します。

Gemfile(追加)
group :production do
  gem 'pg'
end

Gemfileを書き換えて保存したら、ターミナルで以下のコマンドを実行してGemfileの変更を反映させましょう。

ターミナル
$ bundle install --without production

手順3:database.ymlの編集

次は、config/database.ymlを編集します。

以下のように、productionの項目を変更します。

ymlファイルのインデント(字下げ)は必ず半角スペース2つで行い、全角の空白は使わないように注意してください。エラーの原因になります。

config/database.yml(変更前)
production:
  <<: *default
  database: db/production.sqlite3
config/database.yml(変更後)
production:
  <<: *default
  adapter: postgresql
  encoding: unicode
  pool: 5

手順4:config/environments/production.rbの編集

これが最後の編集です。もうひと踏ん張り頑張りましょう!
config/environments/production.rb の31行目付近を以下のように編集します。

config/environments/production.rb(変更前)
  config.assets.compile = false
config/environments/production.rb(変更後)
  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のログイン画面に飛びます。
screenshot 2023-11-24 19.24.24.jpg

「Log in」を押してログインし、以下のようにログイン完了画面が出たらログイン成功です。

このとき、github for studentsに登録している場合、登録したメールアドレスでログインするようにしてください。

screenshot 2023-11-24 19.32.11.jpg

上の画面になったらウィンドウを閉じてターミナルに戻りましょう。

次に、heroku上にアプリケーション用のサーバを作成します。

アプリの名前はurlになるものです。半角英字なのはもちろんですが、使えない記号(_など)もあるので、シンプルなものにしておきましょう。また、すでに同じ名前のurlがある場合使えないので、他の名前を選びましょう。
ちなみにアプリの名前を空欄にすると自動生成してくれます。

ターミナル
heroku create 好きなアプリの名前

次に、herokuでrubyとnode.jsを使えるように設定します。
(herokuのダッシュボード)[https://dashboard.heroku.com/apps]にアクセスし、先ほど作成したアプリ名をクリックします。(以下の図だとrelease-test)

screenshot 2023-11-24 20.12.44.jpg

アプリ名をクリックし、「Settings」をクリックします。

screenshot 2023-11-24 20.17.56.jpg

少し下にスクロールし、Add Buildpack を押して、nodejsとrubyを追加します。

以下の写真のようになれば完了です。

screenshot 2023-11-25 14.24.15.jpg

上から

  • 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」タブを開きます。

screenshot 2023-11-25 14.46.21.jpg

Find more add-ones」を押し、たくさんある中のHeroku Pistgresを選択します。

screenshot 2023-11-25 14.51.32.jpg

Plans & Pricing で、使いたいDBを選択します。
ここでは一番安いプランのMiniを選ぶことにします。

screenshot 2023-11-25 14.55.45.jpg

右上の「Install Heroku Postgres」を押します。

screenshot 2023-11-25 14.57.02.jpg

App to provision to に、先程作成した自分のアプリ名を入力します。

screenshot 2023-11-25 15.00.05.jpg

「Submit Order Form」を押して、DBの作成は完了です。

screenshot 2023-11-25 15.01.12.jpg

手順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

以上です!再デプロイは簡単に行えます。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?