Cloud9 の Ruby on Rails を Heroku へデプロイ
Heroku へのデプロイに参った!
Cloud9 で Ruby on Rails を構築し Gitの管理対象にした辺りまでは順調でよかったが Heroku へのデプロイで躓きました。
$ git push heroku master
(略)
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to ‘https://git.heroku.com/serene-badlands11111.git’
色々検索した結果 Heroku のデプロイで詰まっている人が多いので色々試しましたがあれこれやって1日目は断念。2日目も解決策が見つからず諦めかけました。最後にもう一度コンソールを見直した所 なんと!
remote: !
remote: ! You must use Bundler 2 or greater with this lockfile.
remote: !
ずらずらとした長い画面の真ん中に赤いエラーの文字がありました。Herokuのビルドにおいて使用されるビルドパックを設定し直すには
heroku buildpacks:set
コマンドを実行するようです。Bundler 2 をセットして頂戴との事です。
Heroku buildpack は、Heroku でアプリケーションをコンパイルするために使用するオープンソーススクリプトを集めたもので、Heroku の多言語プラットフォームのバックボーンを担っています。buildpack を使用すると、Heroku のビルドシステムを拡張して好みの開発言語やカスタム要素をサポートできるようにしたり、特殊なバイナリパッケージをランタイムで使えるようにしたりすることができます。Heroku buildpack があれば、アプリケーションや開発チームに最適な言語やフレームワークを自由に選んでコードを書くことができます。 Heroku HPより抜粋
$ heroku buildpacks:set https://github.com/bundler/heroku-buildpack-bundler2
をセットして 再度挑戦します。
$ git push heroku master
(略 これが長いこと・・・)
remote: Verifying deploy… done.
To https://git.heroku.com/serene-badlands11111.git
* [new branch] master -> master
マスターにプッシュできました。諦めないで良かったです!
URLに/blogs を追加して見事デプロイに成功しました。
反省点
エラー表示をよく見ることが大事であると再認識させられました。途中の画面でヒントがありました。そこに気が付いて入れば2日も掛からずすぐに解決できました。