LoginSignup
0
0

More than 1 year has passed since last update.

概要

Herokuでアプリケーションを公開=「デプロイ」する。

1. Herokuにコミットする

① CLIでHerokuを操作するため、HerokuのCLIをインストールする。
herokuというコマンドが使用できる。

% brew tap heroku/brew && brew install heroku

②インストールできたか確認

% heroku --version

⇨ heroku/7.40.0 darwin-x64 node-v13.15.1

上記のように、バージョンが確認できれば、インストール成功!

③ Herokuにログインする

% heroku login --interactive
  => Enter your Heroku credentials.
# メールアドレスを入力し、エンターキーを押す
  => Email:
# パスワードを入力して、エンターキーを押す
  => Password:

⇨ Logged in as 登録したメールアドレス

上記のように表示されれば、ログイン成功!

2. Heroku上にアプリケーションを作成する

該当のアプリケーションのディレクトリで行う。

...MacBook-Air frima-app % heroku create frima-app

下記のコマンドを入力し、正しく作成できたことを確認する。

% git config --list | grep heroku

「fatal: not in a git directory」が表示されなければ、作成完了!

3. Heroku上でMySQLを利用可能にする

①データベースの設定をする
Herokuでは、使用するデータベースの設定が、デフォルトでPostgreSQLになっているため、
「ClearDBアドオン」を追加することで、HerokuでMySQLを利用できるように設定する。
(ClearDBアドオン: MySQLを使うためのツール)

% heroku addons:add cleardb


Ruby on Railsを使う場合は、MySQLに対応するGemについて考慮する。

% heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
% heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}

4. Heroku上で非公開の値を暗号化する

credentials.yml.encファイルとmaster.keyファイルは、セットにすることで、中身を解読できるようになる。

① credentials.yml.encの中身を確認する。

% EDITOR="vi" bin/rails credentials:edit

「esc」→「:」→「q」→「enter」を押して credentials.yml.encを閉じる。

② Heroku上に、環境変数として、master.keyの値を設置する (Herokuへプッシュする前に)

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

「heroku config」:Heroku上で環境変数の参照・追加・削除などするためのコマンド

5.Herokuで使用する動作環境を設定する

Herokuには、Stack(スタック)という環境が用意されている。

% heroku stack:set heroku-18 -a frima-app

6. Herokuで使用するNodeのバージョンを設定

Herokuの初期設定におけるNodeのversionと、自身のアプリにおいてインストールしたNodeのversionを一致させる。不一致だと、正常なデプロイが行えないため。
そのため、HerokuのNodeのversionを指定する。

① 「buildpack」を使用する。Herokuで様々な言語のアプリを扱える。

% heroku buildpacks:add heroku/nodejs
% heroku buildpacks:add heroku/ruby

​​% heroku buildpacks
⇨nodejsとrubyの2つがインストールできてれば成功!

② 使用するnodeのバージョンをpackage.jsonへ記述する

% node -v

v13.15.2 
package.json
~省略~
 "version": "0.1.0",
 "devDependencies": {
   "webpack-dev-server": "^3.10.3"
 },  // カンマを記述
 "engines" : {
   "node": "13.15.2 "  // nodeのバージョンを記述
 }
}

③ ここまでの変更をコミットプッシュ

7. Gitで管理しているリポジトリをHerokuに反映する

% git push heroku master

---今後、アプリに変更を加えた場合はここから----------------------------------------------

今後、開発環境でappに変更を加えた場合は、

% git add .
% git commit -m "後から見てわかりやすいコミット名"
% git push heroku master

8. Heroku上でマイグレファイルを実行する

コードはHerokuに反映できたが、データベースにはマイグレーションの情報が反映されていないので、rails db:migrateを実行したい。Heroku上で実行したいので、

% heroku run rails db:migrate

9. 公開を確認する

% heroku apps:info

公開されたアプリの詳細を確認できる。

* エラーが発生したら

% heroku logs --tail --app frima-app

これにより表示されるエラー文からエラーの原因を確認する

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