私は heroku を使っていますが、アプリをプッシュしようとするたびに次のメッセージが表示されます:
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Ruby app detected
remote:
remote: !
remote: ! You must use Bundler 2 or greater with this lockfile.
remote: !
remote: /tmp/d20181109-104-g861yi/bundler-1.15.2/gems/bundler-1.15.2/lib/bundler/lockfile_parser.rb:108:in `warn_for_outdated_bundler_version': You must use Bundler 2 or greater with this lockfile. (Bundler::LockfileError)
remote: from /tmp/d20181109-104-g861yi/bundler-1.15.2/gems/bundler-1.15.2/lib/bundler/lockfile_parser.rb:95:in `initialize'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/helpers/bundler_wrapper.rb:130:in `new'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/helpers/bundler_wrapper.rb:130:in `block in parse_gemfile_lock'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:18:in `block (2 levels) in instrument'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:40:in `yield_with_block_depth'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:17:in `block in instrument'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/vendor/ruby/heroku-18/lib/ruby/2.5.0/benchmark.rb:308:in `realtime'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:16:in `instrument'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/helpers/bundler_wrapper.rb:86:in `instrument'
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to my-proyect-1234.
remote:
「remote: ! このロックファイルでは Bundler 2 以上を使用する必要があります。」と表示されます。
しかし、私のBundlerのバージョンは2.0.0.pre.1です
何をすればいいのか分からないので、バンドルをアンインストールして再度インストールしてみました。Gemfile.lockを消去してbundle
再度入力してみました。
ベストアンサー1
私も同じような経験をしました。
これが私がそれを解決した方法です
バンドラーgemのすべてのローカルgemのリストを表示します
gem list bundler
いいえ: 上記のコマンドはrbenvバージョンマネージャー用であり、rvm用のものは異なる可能性があります。
ローカルにインストールされているバンドラーgemのバージョンが表示されます。
bundler (2.1.4, default: 1.17.2)
注記: あなたのバージョンはここにあるものと異なる場合があります
ローカルにBundlerバージョン2がインストールされていない場合は、
gem install bundler
または
gem install bundler -v 2.1.4
注記:2.1.4
インストールしたいバージョンに置き換えてください
すでにローカルにバンドラバージョン2がインストールされている場合、またはインストールしたばかりの場合は、RubyGemsパッケージマネージャのアップデートをローカルにインストールするだけです。これを行うには、次のコマンドを実行します。
gem update --system
そして最後に走る
bundle update --bundler
Ruby on RailsのDockerプロジェクト向け
Docker を使用してアプリケーションをビルドしようとしたときにこの問題が発生する場合は、次の操作を実行してください。
Gemfile.lock
ファイルを削除するお願いしますしないを実行して再度作成します
bundle install
。docker build
必要に応じて、またはコマンドを実行しdocker-compose build
てプロジェクトをビルドします。
これにより、ファイルが再作成されGemfile.lock
、ファイル内のプロジェクトに必要なバンドラーの適切なバージョンが設定されますGemfile.lock
。
いいえ: 補足として、Dockerfile
Bundler バージョンを定義した状態でこの環境変数を追加することもできます。
ENV BUNDLER_VERSION=2.1.4