技術ブログ

(技術系中心)基本自分用備忘録なので、あくまで参考程度でお願いします。

Docker環境でGemfileを変更してもインストールされない

発生手順

  1. gemfileにgem追加
  2. docker-compose run --rm web bundle install
  3. dockerコマンド叩く(例: docker-compose run --rm web bundle exec rubocop)
➜  git:(master) ✗ docker-compose run --rm web bundle exec rubocop
Creating compass-backend_web_run ... done
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libjemalloc.so.2' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
bundler: command not found: rubocop
Install missing gem executables with `bundle install`

bundle installできてないとエラーになる

原因

Dockerのイメージの再ビルドをしていない。 Gemfileを変更したときは、イメージの再ビルドを行わないと、gemはインストールされない

解決

  1. docker-compose down -v
  2. docker-compose build --no-cache
  3. docker-compose up

1で既存のvolume削除して、2で再度コンテナ立ち上げる

参考記事

Docker環境でGemfileを変更してもインストールされない | junblog