現象
Bootstrapインストール後、herokuにアップロードした時にエラーが出ました。
remote: Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote: Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.17.2). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote: Fetching gem metadata from https://rubygems.org/............
remote: Fetching version metadata from https://rubygems.org/..
remote: Fetching dependency metadata from https://rubygems.org/.
Bundlerのバージョンが1.15.2だが、lockfileでのバージョンより古いのが良くないようです。今まで出てたのは気づいていたけど影響ないようだったので無視していました。
それに起因しているのか下記のエラーも出ていました。
remote: /tmp/build_9f8a71b1eb66219dad15026fc79ae66b/vendor/bundle/ruby/2.5.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/task.rb:67:in `block (2 levels) in define'
remote: /tmp/build_9f8a71b1eb66219dad15026fc79ae66b/vendor/bundle/ruby/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
remote:
remote: Caused by:
remote: Sass::SyntaxError: File to import not found or unreadable: bootstrap-sprockets.
remote: Load paths:
remote: /tmp/build_9f8a71b1eb66219dad15026fc79ae66b/app/assets/config
remote: /tmp/build_9f8a71b1eb66219dad15026fc79ae66b/app/assets/images
remote: /tmp/build_9f8a71b1eb66219dad15026fc79ae66b/vendor/bundle/ruby/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
remote: Tasks: TOP => assets:precompile
remote: (See full trace by running task with --trace)
remote:
remote: !
remote: ! Precompiling assets failed.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/**********.git'
原因
bootstrap-sprocketsが読み込めないのでpushできない、ということらしいです。
「Precompiling assets failed.」とかで調べてみたがピンとこず。。
対処
ひとまずbundlerをアップデートして先に進めないか試してみました。
$ bundle update --bundler
を実行してアップーデートできました。
バージョンを確認
$ bundler -v
Bundler version 2.0.1
その後無事herokuにアップできました。
後で気付きましたが、エラー文の中に
We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
と書いてありました。。
$ gem install bundler
でよかったのかもしれません。
その後・・・
モデル作成時にエラーが出るようになった。。
$ rails g model User name:string
You must use Bundler 2 or greater with this lockfile.
調べてみたとろ、1.17.3とかに戻せと。
Gemfile.lockを削除
$ gem install bundler -v 1.17.3
$ bundle _1.17.3_ install
バージョン確認
$ bundler -v
Bundler version 1.17.3
これだと振り出しに戻ったかと思いましたが、その後はエラーなく進めています。何故だろう。。
remote: Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote: Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.17.2). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote: Fetching gem metadata from https://rubygems.org/............
remote: Fetching version metadata from https://rubygems.org/..
remote: Fetching dependency metadata from https://rubygems.org/.