【Rails】Docker × Rails × RSpecの開発環境で’Could not find ’****’ in any of the sources’が出た時の対処方法
Gemfile
group :development, :test do
~ 以下追加 ~
gem 'rspec-rails'
gem 'factory_bot_rails'
end
Gemfileを更新したのでdockerコマンドでbundle install実行
$ docker-compose run web bundle exec rails g rspec:install
エラーメッセージ
Could not find diff-lcs-1.4.4 in any of the sources
Run `bundle install` to install missing gems.
色んな記事を参照させてもらって実行してみるもなかなかうまくいかず・・・
解決方法
いろいろググっている内にキャッシュで bundle install が実行されないていない場合がある?という記事を見させていただき、早速実行しました
$ docker-compose build --no-cache
実行結果
$ docker-compose run web bundle exec rails g rspec:install
Creating app_run ... done
Running via Spring preloader in process 64
create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
見事クリエイトに成功
原因
docker-compose build しても cache が有効になっていて設定変更が反映されてうまく動作しないことがあるので、開発中にGemfileを更新した時は
$ docker-compose build --no-cache
で実行する方がいいとのことです
まとめ
spring stop関連の記事が多かったため解決するのに時間がかかってしまった点が反省点。でも初学者だからこそこの積み重ねが大事とも感じました
参考
以下の記事参考にさせていただきました!ありがとうございました!
Dockerでコンテナ内にbundle installされない問題の解決法
docker をキャッシュを使わないでビルドする