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から削除した方は、再度コマンドを入力して実行する必要があります。

以上の流れをまとめると以下の通りになります。

  1. 以前エラーが出たところまで一気に進める

    1. コマンドプロンプトを立ち上げて、「cd」コマンドなどで自分が開発したアプリのプロジェクトデータがある場所まで作業場所を移動しておく。

    2. コマンドプロンプトから「heroku login」を入力してherokuへのログインを済ませておく。

  2. herokuへのデプロイ(再挑戦)
    コマンドプロンプトから「git push heroku main」を入力して作成したRailsアプリケーションのプロジェクトデータをheroku上へデプロイする。

  3. アプリケーションのインスタンスを起動させる
    コマンドプロンプトから「heroku ps:scale web=1」を入力してheroku上にデプロイされたアプリケーションについてインスタンスを1つ起動するようにherokuへ指示を出す。

  4. 起動中のアプリケーションを開いてみる
    コマンドプロンプトから「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

実際にコマンドを入力してみると以下のような感じになります。

おわりに

ここまで読んでくださってありがとうございました。
あともう少しだけ、デプロイ作業は続きますが、その内容は次回の記事に記載いたします。
次回に続きます。


この記事が気に入ったらサポートをしてみませんか?