0
0

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.

【Railsアプリケーション】Herokuへデプロイして本番稼働する

Last updated at Posted at 2023-02-10

はじめに

Railsなどを中心に勉強中のエンジニア初心者が他の記事を参考にしたり、実際に実装してみたりして、アウトプットの一環としてまとめたものです。
間違っていることもあると思われるので、その際は指摘いただけると幸いです。

RilasアプリケーションをHeroku環境で本番稼働する

下記の前提とする。

  • Heroku CLIの実行環境があり、Heroku上にリポジトリがある
  • AWS CLIの設定が完了している

Heroku上のリポジトリ情報を確認する

Heroku上のリポジトリ情報を確認する

heroku info -a Heroku上のアプリケーション名

実行結果

% heroku info -a rails-app
=== rails-app
Auto Cert Mgmt: false
Collaborators:  rails-app@gmail.com
Dynos:          
Git URL:        https://git.heroku.com/rails-app.git
Owner:          final-task@herokumanager.com
Region:         us
Repo Size:      0 B
Slug Size:      0 B
Stack:          heroku-20
Web URL:        https://rails-app.herokuapp.com/

Heroku上のリポジトリ情報を登録する

上記で確認したリポジトリ情報を登録する。

ローカルのアプリケーションフォルダ内で実行しないとfatal: not a git repository (or any of the parent directories): .gitというエラーが出るため注意。

Heroku上のリポジトリ情報を登録する

git remote add heroku (Git URL)

実行結果

% git remote add heroku https://git.heroku.com/rails-app.git          
% git remote -v
heroku  https://git.heroku.com/rails-app.git (fetch)
heroku  https://git.heroku.com/rails-app.git (push)
origin  https://github.com/test/rails-app.git (fetch)
origin  https://github.com/test/rails-app.git (push)

Heroku上へコードをデプロイ

Heroku上にコードをデプロイする。 デプロイしたいブランチ名をtestbranchと仮定する。

実行コマンド

これはHerokuリポジトリ(https://git.heroku.com/rails-app.git)にプッシュするという意味。

git push heroku testbranch:master

実行結果

emote: -----> Discovering process types
remote:        Procfile declares types     -> (none)
remote:        Default types for buildpack -> console, rake, web
remote: 
remote: -----> Compressing...
remote:        Done: 147.1M
remote: -----> Launching...
remote:        Released v5
remote:        **https://**rails-app**.herokuapp.com/** deployed to Heroku                    # アプリケーションのURL
remote: 
remote: This app is using the Heroku-20 stack, however a newer stack is available.
remote: To upgrade to Heroku-22, see:
remote: https://devcenter.heroku.com/articles/upgrading-to-the-latest-stack
remote: 
remote: Verifying deploy... done.
To https://git.heroku.com/rails-app.git
 * [new branch]      testbranch -> master

アプリケーションURL(https://rails-app.herokuapp.com/)へアクセス

下記のようになる場合は、エラー。

スクリーンショット 2023-01-25 3.01.56.png

エラー時のログの確認

下記コマンドなどでアプリケーションのログを確認して対応する。

(今回の場合は、MySQLの構築がされていないためエラーとなっている。ログはメモるの忘れた)

heroku logs --source=app --tail

Heroku上でMySQLの環境を構築する

データベースの接続情報を作成

JAWSDB_URLJawsDBプラグインから提供される環境変数で、ユーザー名やパスワードを含めデータベースに接続するためのすべての情報が格納されている。

heroku addons:create jawsdb:kitefin

config/database.ymlの編集

前述のコマンドで作成したデータベースの接続情報を追記する。

production:
  <<: *default
  url: <%= ENV['JAWSDB_URL']&.sub('mysql://', 'mysql2://') %>

Heroku環境へデプロイする

上記の作業が完了したら、Heroku環境へデプロイする。

ただ、まだデータベースの設定が完了していないためエラーとなる。

データベースの設定

必要とするテーブルや初期データを生成する必要がある。

実行コマンド

heroku run bin/rails db:migrate

heroku runは任意のコマンドをHeroku上で実行するためのコマンド。
ここでは、bin/rails db:migrateを実行している。

ここまで完了すれば、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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?