Bundler: このロックファイルにはBundler 2以上を使用する必要があります 質問する

Bundler: このロックファイルにはBundler 2以上を使用する必要があります 質問する

私は 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 を使用してアプリケーションをビルドしようとしたときにこの問題が発生する場合は、次の操作を実行してください。

  1. Gemfile.lockファイルを削除する

  2. お願いしますしないを実行して再度作成しますbundle install

  3. docker build必要に応じて、またはコマンドを実行しdocker-compose buildてプロジェクトをビルドします。

これにより、ファイルが再作成されGemfile.lock、ファイル内のプロジェクトに必要なバンドラーの適切なバージョンが設定されますGemfile.lock

いいえ: 補足として、DockerfileBundler バージョンを定義した状態でこの環境変数を追加することもできます。

ENV BUNDLER_VERSION=2.1.4

おすすめ記事