Herokuにデプロイできない
デプロイ:webアプリケーション等をアップロードして起動し、ユーザーが利用可能な状態にすること
早速デプロイしようとしたら
error: failed to push some refs to 'https://git.heroku.com.....
(エラー:一部の参照を 'https://git.heroku.com .....にプッシュできませんでした)
とのこと。
rails環境(railsで使用する環境)がきちんと構築されていないことが原因のようで。
$ git push heroku masterをもう一度してみると
Failed to install gems via Bundler.
(Bundler経由でのgemsのインストールに失敗しました)
とのこと。
なので、Heroku用の設定をもう一度確認することに。
・Gemfileの最後に追加
group :production do (←produciton環境で)
gem 'pg', '>= 0.18', '< 2.0' (←pgのgemを使用)
end
・bundle installを実行
$ bundle install --without production
このGemfileはproduction環境(本番環境)において、pg(PostgreSQLとRailsを連携するためのGem)というGemを使用すること表すらしいです。ただ、cloud9上では読み込む必要のないgemなので、スキップオプション(--without)をつけています。
※Cloud9環境では、基本development環境(開発環境)というモードで起動するので、production環境(本番環境)のgemは不要。
ちなみにdevelopment(開発)とproduction(本番)環境との違いですが、
開発はエラーの理由がわかりやすく表示され、本番は「エラー!」と出るだけだそうです。本番環境(実際に稼働している状況)でエラーの理由とかが詳細に表示されちゃうと、悪用される可能性もあるそうなので。
そして再度デプロイチャレンジ
$ git push heroku master
するとエラーではなくwarningが。
warningその1
rails構成の検出に失敗しました。
HEROKU_DEBUG_RAILS_RUNNER=1を設定してデバッグ*1
warningその2
使用できる最新のRubyバージョンがあります。
2.5.8
最新バージョンにはセキュリティとバグ修正が含まれますので、常にお勧めします。
マイナーリリースの最新バージョンを実行します。
Rubyのバージョンをアップグレードしてください。
利用可能なすべてのRubyバージョンについては、以下を参照してください。
https:// ...
warningその3
デフォルトのWebサーバーを使用して、Procfile*2は検出されませんでした。
Procfileを介してサーバープロセスを起動する方法を明示的に宣言することをお勧めします。 https://devcenter.heroku...
「最新にしろ」ってことなんでしょうが、学習カリキュラムがこのバージョンを推奨しているので、そのままGo。
デプロイ自体はここまでで一応できました。後はHerokuを開く作業です。