Ruby on Railsにてポートフォリオを作成中
Rspecにてモデルのテストを作成する際に、Faker gemを導入したくGemfileに追加し、bundle install を実行し、無事インストールが完了する。
その後に、docker-compose run app(コンテナ名) rspec を実行すると
Could not find faker-2.13.0 in any of the sources
Run bundle install
to install missing gems.
と表示され、コンテナ内のGemfile.lockが更新されていないのでは?と思い
docker-compose run app bundle installを実行し、こちらもインストール完了
再度、docker-compose run app rspecを実行するも、
Could not find faker-2.13.0 in any of the sources
Run bundle install
to install missing gems.
と同じエラーが出る。
表題の通り、docker環境で、gemfileを変更する仕方が分かりません。
参考に、コード等を下記に示します。
Gemfile
source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby '2.6.3' gem 'rails', '~> 5.2.4', '>= 5.2.4.3' gem 'bcrypt' gem 'mysql2', '>= 0.4.4', '< 0.6.0' gem 'puma', '~> 3.11' gem 'sass-rails', '~> 5.0' gem 'uglifier', '>= 1.3.0' gem 'coffee-rails', '~> 4.2' gem 'bootsnap', '>= 1.1.0', require: false gem 'bootstrap', '~> 4.1.1' gem 'jquery-rails' gem 'faker' group :development, :test do gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] gem 'rspec-rails', '~> 3.7' gem 'rails-controller-testing' gem 'factory_bot_rails', '~> 4.11' end group :development do gem 'web-console', '>= 3.3.0' gem 'listen', '>= 3.0.5', '< 3.2' gem 'spring' gem 'spring-watcher-listen', '~> 2.0.0' gem 'spring-commands-rspec' end group :test do gem 'capybara', '>= 2.15' gem 'selenium-webdriver' gem 'chromedriver-helper' gem 'webdrivers' end gem 'devise' gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] group :development, :staging do gem 'rubocop', '~> 0.82.0', require: false end group :production do gem 'puma_worker_killer' end
Dockerfile
FROM ruby:2.6.3 # リポジトリを更新し依存モジュールをインストール RUN apt-get update -qq && \ apt-get install -y build-essential \ nodejs # ルート直下にmy_appという名前で作業ディレクトリを作成(コンテナ内のアプリケーションディレクトリ) RUN mkdir /my_app WORKDIR /my_app # ホストのGemfileとGemfile.lockをコンテナにコピー ADD Gemfile /my_app/Gemfile ADD Gemfile.lock /my_app/Gemfile.lock # bundle installの実行 RUN bundle install # ホストのアプリケーションディレクトリ内をすべてコンテナにコピー ADD . /my_app # puma.sockを配置するディレクトリを作成 RUN mkdir -p tmp/sockets
docker-compose run app bundle install時のメッセージ
Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
docker-compose run app rspec時のメッセージ
Could not find faker-2.13.0 in any of the sources Run `bundle install` to install missing gems.
その他確認したいコード等がございましたら、コメントにて記述の方をお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/12 05:13 編集
2020/09/12 08:35
2020/09/12 13:04