作業内容
1. Heroku CLIのインストール
2. Herokuにデプロイ
3. Herokuデプロイ時のERROR対処
前提
下記の項目はすでに設定が終わっていたので、今回の作業からは割愛します。
・Herokuのユーザー登録済み
・Gitはすでにインストール済み(確認コマンド% git --version)
1. Herokuのインストール
1.1 Heroku CLIをインストールする
% brew tap heroku/brew && brew install heroku
1.2 バージョンの確認
% heroku --version
〜〜〜省略〜〜〜
heroku/7.59.2 darwin-x64 node-v12.21.0
インストール出来ていることが確認できました。
1.3 次にHerokuにログインする
(なお--interactiveオプションを使うと、herokuコマンドでブラウザを開かないようにできます)。
% heroku login --interactive
heroku: Enter your login credentials
Email: メールアドレス
Password: パスワード
Logged in as メールアドレス
ログインすることが出来ました。
1.4 最後にheroku createコマンドを実行して、Herokuサーバー上に今回開発したアプリケーションの実行場所を作成
※このherokuコマンドを実行すると、Railsアプリケーション専用のサブドメインが作成される。
% heroku create
2. Herokuにデプロイ
2.1 Gitを使ってHerokuにリポジトリをプッシュ
すると、以下のERRORが発生しました。
% git push heroku master
〜〜〜省略〜〜〜
〜〜〜省略〜〜〜
!
! Failed to install gems via Bundler.
!
! Push rejected, failed to compile Ruby app.
! Push failed
3. Herokuデプロイ時のERROR対処
3.1
Bundler経由でgemをインストールできませんといっているので、bundle installを実行してみる。
% bundle install
Bundler could not find compatible versions for gem "spring":
〜〜〜省略〜〜〜
3.2
Bundlerは、gem "spring"と互換性のあるバージョンを見つけることができませんでした。
とERRORになったので、Gemfileの内容を書き換えて再トライ。
bundle install
又は bundle update
% bundle update
[!] There was an error parsing `Gemfile`: 'spring~> 1.2' is not a valid gem name because it contains whitespace. Bundler cannot continue.
〜〜〜省略〜〜〜
3.3
[!] Gemfile
の解析中にエラーが発生しました: 'spring〜> 1.2'は空白が含まれているため、
有効なgem名ではありません。 Bundlerは続行できません。とツッコミを入れらてしまう。
確認してみると、
gem 'spring' '~> 1.2' となっていたので「,」を追加して
gem 'spring', '~> 1.2' へ修正。
そして、再トライ!
% bundle install
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...
〜〜〜省略〜〜〜
〜〜〜省略〜〜〜
An error occurred while installing sqlite3 (1.3.13), and Bundler cannot continue.
3.4
今度はsqlite3(1.3.13)のインストール中にエラーが発生し、
Bundlerを続行できません。と言われるので、
またGemfileをsqlite3(1.3.13)に対応するよう修正。
ここで、、Git Hubへpushしておく。(git status → git add . → git commit → git push)
からの、再々トライ!
% git push heroku master
〜〜〜省略〜〜〜
remote: !
remote: ! Failed to install gems via Bundler.
remote: !
〜〜〜省略〜〜〜
3.5
Bundler経由でgemをインストールできませんでした。と再度ツッコミを入れられる・・・・・?
Your bundle only supports platforms ["x86_64-darwin-19"]
バンドルはプラットフォームのみをサポートします["x86_64-darwin-19"]と言われたので
指定された、bundle lock を実行してみる。
% bundle lock --add-platform x86_64-linux
3.6
あっ!なんかいったぽい。
ここで、、Git Hubへpushしておく。(git status → git add . → git commit → git push)
再再々トライ!!!!!
% git push heroku master
Enumerating objects: 118, done.
Counting objects: 100% (118/118), done.
〜〜〜省略〜〜〜
〜〜〜省略〜〜〜
〜〜〜省略〜〜〜
〜〜〜省略〜〜〜
〜〜〜省略〜〜〜
remote: Verifying deploy... done.
To https://git.heroku.com/peaceful-fortress-23034.git
* [new branch] master -> master
きたーーーー!
remote: Verifying deploy... done.(リモート:デプロイを確認しています...完了しました。)
はい。
無事デプロイ出来ました。
途中、Git Hubのディレクトリ構成がおかしいことを
メンターさんに指摘して頂いたことで次に進むことが出来ました。
ありがとうございました。