Bundler::GemNotFound:在使用Docker的Rails项目的任何源中找不到mimemagic-0.3.5
我知道最近的 mimemagic 问题,我通过捆绑更新到 0.3.7 设法在我的一个 Rails 项目上解决了这个问题 - 但由于某种原因,我无法在下面的项目中解决它。
我有一个 Rails 6 项目,这是我第一次在新笔记本电脑上进行设置。我的笔记本电脑没有正确的 Ruby 设置,所以我在我的项目中添加了一个 Dockerfile,如下所示:-
文件
FROM ruby:2.7
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
WORKDIR /radius
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle update mimemagic
RUN bundle install
COPY . /myapp
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000
CMD ["rails", "server", "-b", "0.0.0.0"]
文件
# frozen_string_literal: true
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '2.7.2'
gem 'airbrake'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'dotenv-rails'
gem 'rails', '~> 6.0.3.6'
# Use postgresql as the database for Active Record
gem 'pg', '>= 0.18', '< 2.0'
# Use Puma as the app server
gem 'puma', '~> 3.11'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5'
gem 'shortener'
# Use Honeybadger for error reporting/monitoring
gem 'honeybadger', '~> 4.0'
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
gem 'webpacker', '~> 4.0'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use Active Model has_secure_password
# gem 'bcrypt', '~> 3.1.7'
gem 'newrelic_rpm'
# Use Active Storage variant
# gem 'image_processing', '~> 1.2'
# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.4.2', require: false
group :development, :test do
gem 'awesome_print'
gem 'byebug', platforms: %i[mri mingw x64_mingw]
gem 'pry-byebug'
# Version specified as workaround for this issue https://github.com/rails/rails/issues/35417
gem 'rspec-rails', '~> 4.0.0.beta2'
end
group :development do
gem 'factory_bot_rails', '~> 4.0'
gem 'fasterer'
gem 'haml_lint', require: false
gem 'listen', '>= 3.0.5', '< 3.2'
gem 'rails_best_practices'
gem 'reek'
gem 'rubocop'
gem 'scss_lint', require: false
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
gem 'web-console', '>= 3.3.0'
end
group :test do
# Adds support for Capybara system testing and selenium driver
gem 'capybara', '>= 2.15'
gem 'rspec_junit_formatter'
gem 'selenium-webdriver'
# Easy installation and use of web drivers to run system tests with browsers
gem 'webdrivers'
gem 'webmock'
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]
gem 'administrate', '0.12.0'
gem 'bootstrap', '~> 4.3', '>= 4.3.1'
gem 'devise', '~> 4.6', '>= 4.6.1'
gem 'devise-bootstrapped', github: 'excid3/devise-bootstrapped',
branch: 'bootstrap4'
gem 'devise_masquerade', '~> 0.6.2'
gem 'font-awesome-sass', '~> 5.6', '>= 5.6.1'
gem 'friendly_id', '~> 5.2', '>= 5.2.5'
gem 'gibbon'
gem 'gmaps4rails'
gem 'gravatar_image_tag', github: 'mdeering/gravatar_image_tag'
gem 'httparty'
gem 'mini_magick', '~> 4.9', '>= 4.9.2'
gem 'name_of_person', '~> 1.1'
gem 'omniauth-facebook', '~> 5.0'
gem 'omniauth-github', '~> 1.3'
gem 'omniauth-twitter', '~> 1.4'
gem 'pundit', '~> 1.1.0'
gem 'sidekiq', '~> 5.2', '>= 5.2.5'
gem 'sitemap_generator', '~> 6.0', '>= 6.0.1'
gem 'underscore-rails'
gem 'whenever', require: false
然后我尝试:-
docker-compose build
docker-compose up
连同以下各项的每一个组合:-
- 使用
bundle update mimemagic在我dockerfile - 将 gem 专门添加到我的 Gemfile 中
gem 'mimemagic', '~> 0.3.7' - 手动将我的 Gemfile.lock mimemagic 版本从 更改
0.3.5为0.3.7 - 添加
RUN apt-get install shared-mime-info到我的 Dockefile
我只是得到以下之一:-
Could not find mimemagic-0.3.x in any of the sources
web_1 | Bundler::GemNotFound: You have requested:
web_1 | mimemagic ~> 0.3.7
web_1 |
web_1 | The bundle currently has mimemagic locked at 0.3.5.
web_1 | Try running `bundle update mimemagic`
我还尝试将导轨撞到6.0.3.6并再次运行 docker build,这给我带来了 activesupport 问题:-
web_1 | Bundler::VersionConflict: Bundler could not find compatible versions for gem "activesupport":
web_1 | In snapshot (Gemfile.lock):
web_1 | activesupport (= 6.0.3.5)
web_1 |
web_1 | In Gemfile:
web_1 | rails (~> 6.0.3.6) was resolved to 6.0.3.6, which depends on
web_1 | activesupport (= 6.0.3.6)
web_1 |
web_1 | dotenv-rails was resolved to 2.7.6, which depends on
web_1 | railties (>= 3.2) was resolved to 6.0.3.5, which depends on
web_1 | activesupport (= 6.0.3.5)
web_1 |
web_1 | Running `bundle update` will rebuild your snapshot from scratch, using only
web_1 | the gems in your Gemfile, which may resolve the conflict.
我究竟需要做什么才能安装这个 gem?
回答
bundle update --conservative mimemagic
也尝试使用较新的版本而不是锁定它。它对我们有用 0.3.9,但现在有0.3.10(还没有尝试过),
回答
解决它使用:
bundle update mimemagic
我Your bundle is locked to mimemagic (0.3.5) from rubygems在捆绑安装时遇到错误。
这个更新mimemagic版本,0.3.10并添加nokigiri和rake在Gemfile.lock的依赖我。
THE END
二维码