1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Heroku】herokuでRailsアプリをデプロイする際の基本的な手順のまとめ

Posted at

本記事の前提

使用環境

  • Rails 5.2.6.2
  • ruby 2.6.6
  • git 2.18.5
  • AWS Cloud9

省略作業

  • Herokuアカウントの登録
  • Gitのインストール
  • デプロイするアプリの作成

デプロイする手順

1.Heroku CLIのインストール

Herokuの操作をコマンドラインから行えるようにするために、Heroku CLIをインストールしていきます。
以下の公式サイトからご自身のOSに合ったものをインストールして下さい。

AWS Cloud9の場合
以下のコマンドを全てコピーし、ターミナルに貼り付けて実行して下さい。

terminar
$ curl -OL https://cli-assets.heroku.com/heroku-linux-x64.tar.gz
tar zxf heroku-linux-x64.tar.gz && rm -f heroku-linux-x64.tar.gz
sudo mv heroku /usr/local
echo 'PATH=/usr/local/heroku/bin:$PATH' >> $HOME/.bash_profile
source $HOME/.bash_profile > /dev/null

2.デプロイするアプリのディレクトリに移動しherokuにログインする

terminar
$ cd アプリ名
$ heroku login --interactive //herokuにログインするためのコマンド

メールアドレスとパスワードが求められるので、それぞれ入力しエンターを押して、無事にログインに成功すると、Logged in as Eメールアドレスと表示されますので確認して下さい。

3. Railsアプリをデプロイするための流れ

大きく以下のような項目に分けてRailsアプリの設定を変更していきます
3-1. rails_12factorの導入
静的アセットファイルをHeroku上でうまく動作するように調整してくれるGemになります。以下のようにGemfileに下記の記述を追加して下さい。

Gemfile
group :production do
  gem 'rails_12factor'
end

3-2. Gemfileの各項目の設定変更
次にGemfileの内容をデプロイできる状態に変更していきます。
まず、gem 'sqlite3'と記述がある部分をコメントアウトにします。

Gemfile
# gem 'sqlite3'

次に、group :development, :test do - endの中にgem 'sqlite3'を追記します。

Gemfile
group :development, :test do
  gem 'sqlite3'
end

そして本番環境でPostgreSQLを使っていくために、以下のような設定を追記します。

Gemfile
group :production do
  gem 'pg'
end

最後にGemfileの変更を適用するためbundle installを実行します。このとき本番環境に関係するproduction以外の部分を対象とするため、以下のようなオプションをつけてコマンドを実行していきます。

terminar
$ bundle install --without production

3-3. config/datebase.ymlの設定変更
本番環境で実際にデータベースと接続するための設定を変更するためdatebase.ymlのproduction:以降を以下のように変更していきます。このときproduction:直下の記述が半角スペース2個分空いていることを確認して下さい。

config/datebase.yml
production:
  <<: *default
  adapter: postgresql
  encoding: unicode
  pool: 5

3-4. config/environments/production.rbの設定
続いて本番環境でassets以下のフォルダから動的な画像の表示していくためにproduction.rbの次の記述をtrueに変更していきます。

config/environments/production.rb
config.assets.compile = true

3-5. Heroku上にアプリを作成する
ここからHeroku上にアプリを作成していきます。ここでHerokuではGitコマンドでアプリを登録していく関係で、ローカルリポジトリを作成されていない場合はgit initコマンドから作成しましょう。それからheroku createコマンドで新しいアプリを作成していきます。このときアプリ名を指定したい場合は、heroku create アプリ名とすると指定できますが、既に使用されている名前の場合は指定できないので注意して下さい。

terminar
$ git init
// ローカルリポジトリ作成後
$ heroku create

ここで、ターミナルに表示されたアプリのURLにアクセスしてアプリが作成されていることを確認しましょう。
そして、Gitコマンドからファイルの管理が済んでいない方は以下のようにGitコマンドを実行して下さい。

terminar
$ git add .
$ git commit -m "upload to heroku"

そしていよいよアプリのデプロイになります。git push heroku masterからアプリのプッシュを行い、それが終わったら本番環境でのデータベースの作成をheroku run rails db:migrateコマンドで実行します。

terminar
$ git push heroku master
// 終わり次第以下のコマンドでデータベースを作成する
$ heroku run rails db:migrate

補足情報

  • デプロイしたアプリのURLや情報は以下はheroku apps:infoコマンドから確認できます。
terminar
$ heroku apps:info
  • 本番環境にdb/seeds.rbに記述した初期データを登録するためには、heroku run rake db:seedを実行して反映させていきます。
terminar
$ heroku run rake db:seed
  • デプロイ後のアプリの更新については、先程と同様にGitコマンドから変更したファイルを反映させます。
terminar
$ git add .
$ git commit -m "update to heroku"
$ git push heroku master
  • こんなエラーが発生したとき
    スクリーンショット 2022-03-03 10.40.37.png
    こちらの記事の内容を参考にしてみて下さい。

参考記事

  1. 【初心者向け】railsアプリをherokuを使って確実にデプロイする方法【決定版】
  2. RailsアプリをHerokuにデプロイする手順
  3. herokuで本番環境にデータ投入
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?