📝

Could not find mini_portile2-2.7.1 in any of the sources

2022/03/05に公開

結論

bundle updateをしたら直りました。

gem名を指定するのは以下でいけると思います。

$ bundle update gem名

エラー

エラーの全文は以下になります。

Could not find mini_portile2-2.7.1 in any of the sources
Run `bundle install` to install missing gems.

環境

Dockerfileでイメージをビルドしてその中でrailsアプリを立ち上げようとしていました。
Docker version 20.10.12
ruby 2.7.5p203
Rails 6.1.4.6

経緯

PCの引っ越しをして既存のアプリケーションディレクトリをコピーして
ruby,railsのバージョンを合わせてdocker buildコマンドでイメージを生成
runコマンドで走らせた段階で前述のエラーが発生しました。
当初以下のようなコマンドを試してみたのですが解決しませんでした。
(全てプロジェクトルートディレクトリで実行)

$ docker image rm xxxxxxxx
$ bundle install
$ docker build --no-cache -t app:latest
$ docker run -it -p 3000:3000 app:latest

原因

gemのバージョン違いが読み込まれていたためでした。
bundle updateで解決したということはGemfileに書かれていた設定をもとに
Gemfile.lockを上書きしたことでgemのバージョンが正しくなったということだと予想しています。

教訓

Discussion