26日目 jrubyアプリのherokuへのデプロイ⑥(再試行編)
おはようございます。
herokuへのデプロイ挑戦中ですが、そろそろ今日こそは成功させようと思いましたが…。あともう少しのところで惜しいところが出てきました。
現時点での開発環境(前提)
・Windows 10
・JRuby 9.1.17
・Rails 4.2.4 (※「bundle install」コマンドにてインストール)
・bundler 1.17.3 (※バージョン「2.3.15」も同時にインストール済)
・PostgreSQL 10.21
・Visual Studio Code
・Git(&ローカルリポジトリ作成&プロジェクトデータのコミット済)
・Heroku CLI(&Herokuアカウント作成済)
※GitとHeroku CLIの設定については詳しくは、以下の①~③にてまとめてありますので、良かったらご参考ください。
今回やること
・Heroku へのJRuby on Railsアプリのデプロイ(2回目)
参考
おさらい
一昨日、デプロイしようと一度は試みたものの、Herokuへのデプロイ時に「'jruby.exe' : No such file or directory」というエラーメッセージが表示されて、デプロイに失敗しました。
そこで、現状のRailsアプリケーションのプロジェクトデータから「jruby.exe」と記載のあったところを全て「jruby」に変更することで、「'jruby.exe' : No such file or directory」というエラーの解決を試みます。(詳しくは以下の記事)
本日やること(noteに書く内容)は、その変更を施した状態で、デプロイの再挑戦を行なうものになります。
本日の作業
まず、以前デプロイしようとして途中でエラーが出て断念したところまで一気に進めます。(先ほど載せた記事と同じですが、以下に再度リンクを貼ります。)
また、途中でエラーが出て断念したところまで一気に進めることができましたら、後はできなかったところから、デプロイの続きを行ないます。
なお、以前の作業の中で「heroku create (アプリ名)」というheroku上にリモートリポジトリを作るためのコマンドがありますが、一度実行すればよいため、今回は不要です。(以前の作業で1度実行済)
もし、一度もまだ実行したことがない方や、実行したけれどもその後に該当アプリのリモートリポジトリをherokuから削除した方は、再度コマンドを入力して実行する必要があります。
以上の流れをまとめると以下の通りになります。
以前エラーが出たところまで一気に進める
コマンドプロンプトを立ち上げて、「cd」コマンドなどで自分が開発したアプリのプロジェクトデータがある場所まで作業場所を移動しておく。
コマンドプロンプトから「heroku login」を入力してherokuへのログインを済ませておく。
herokuへのデプロイ(再挑戦)
コマンドプロンプトから「git push heroku main」を入力して作成したRailsアプリケーションのプロジェクトデータをheroku上へデプロイする。アプリケーションのインスタンスを起動させる
コマンドプロンプトから「heroku ps:scale web=1」を入力してheroku上にデプロイされたアプリケーションについてインスタンスを1つ起動するようにherokuへ指示を出す。起動中のアプリケーションを開いてみる
コマンドプロンプトから「heroku open」を入力して起動中のアプリケーションを開いて動作を確認する。
1. 以前エラーが出たところまで一気に進める
コマンドプロンプトを起動した後、以下の①~④を実行します。
※上記写真の中にある④については、自動的に起動されるログイン画面というのは以下のような「Heroku CLI」へのログイン画面です。この画面から「Log in」ボタンを押し、その後に聞かれるユーザー名とパスワードを入力してログインします。
2. herokuへのデプロイ(再挑戦)
前述の1の作業が終わりましたら、以下のコマンドをコマンドプロンプトから入力します。
git push heroku main
入力してみると以下のように少しずつデプロイに関するメッセージが出てくるので、無事完了するように祈りながら待機します。
しばらく経った後に、以下のように「remote: Verifying deploy… done.」というメッセージが出たらデプロイ完了です。
3. アプリケーションのインスタンスを起動させる
前述の手順2にて、デプロイが完了したら、次はデプロイしたアプリケーションのインスタンスを起動して、heroku上で動くようにします。
インスタンスを起動するコマンドは以下の通りです。
heroku ps:scale web=1
実際に入力してみると、以下のように「Scaling dynos… done, now running web at 1:Free」というメッセージが出るかと思います。これでデプロイしたアプリケーションのインスタンスを1つ起動したことになります。
※「dyno」については2017年の記事で古いかもしれませんが、以下をご参考ください。
4. 起動中のアプリケーションを開いてみる
前述の手順3にて実際にアプリケーションがheroku上で動いているかどうか確認する場合、以下のコマンドで確認可能です。
heroku open
実際にコマンドプロンプトから入力してみると、以下のような表示が出て、
上記の表示とほぼ同時にブラウザが起動されて、以下の画面が出てきます。
・・・ん?
ローカルと同じような画面が出てくるかと思いきや、まさかのエラーメッセージ画面でした。エラーメッセージの内容は
・「The page you were looking for doesn't exist. 」
・「You may have mistyped the address or the page may have moved.」
とのことですので、メッセージだけ見ると、恐らくRailsのルーティング設定が足りてないか、ページを用意していないのが原因のようです。
今回作ったRailsアプリは、まだ何も実装していないため、最低限のテンプレートファイルしかないため、ローカルでは動かすことができるのかもしれないのですが、heroku上においてはまだ、その設定が足りていないのだろうと思います。
そう思って「The page you were looking for doesn't exist. 」をそのまま検索ワードに指定して調べてみると、案の定、以下のような記事を見つけました。
やっぱりRailsのルーティング設定が足りてないようですので、そのルーティング設定を調整しておけばエラーが出なくなるようです。
一応、アプリケーションはデプロイされて、またheroku上でそのアプリケーションが動いてはいるのでしょうが、デプロイ作業の最後がエラーというのも締まりがないので、あと少しだけ踏ん張って、エラーを修正してから今回のデプロイ作業は終わらせていきます。
※アプリケーションを停止させる場合
前述の手順3にて起動させたアプリケーションは、30分以上動かさなければ(アプリケーションにアクセスする人がいなければ)スリープモードに入って、アプリケーションが自動的に停止しますが、次のコマンドを入力することによって、アプリケーションを手動で停止させることもできます。
heroku ps:scale web=0
実際にコマンドを入力してみると以下のような感じになります。
おわりに
ここまで読んでくださってありがとうございました。
あともう少しだけ、デプロイ作業は続きますが、その内容は次回の記事に記載いたします。
次回に続きます。
この記事が気に入ったらサポートをしてみませんか?