I’m aware of the recent mimemagic issues, which I managed to resolve on one of my Rails projects by bundle updating to 0.3.7 – but for some reason, I can’t resolve it on the project below.
I have a Rails 6 project which I’m setting up for the first time on a new laptop. My laptop doesn’t have the correct Ruby setup, so I’ve added a Dockerfile to my project like so:-
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"]
Gemfile
# 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
I then try:-
docker-compose build
docker-compose up
Along with every combination of the following:-
- Using
bundle update mimemagic
in my dockerfile - Adding the gem specifically to my Gemfile with
gem 'mimemagic', '~> 0.3.7'
- Manually changing my Gemfile.lock mimemagic version from
0.3.5
to0.3.7
- Adding
RUN apt-get install shared-mime-info
to my Dockefile
and I simply get one of the below:-
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`
I’ve also tried bumping rails to 6.0.3.6
and running the docker build again, which gives me activesupport issues:-
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.
What exactly do I need to do to get this gem to install?
6
Answers
also try with newer version rather than locking it.
it worked for us with 0.3.9, but now there is 0.3.10(have not tried it),
You can modify your Gemfile as below:
More details are here
Solved it using:
I was getting the error
Your bundle is locked to mimemagic (0.3.5) from rubygems
on bundle install.This updated
mimemagic
version to0.3.10
and addednokigiri
andrake
dependencies in Gemfile.lock for me.For my case this was the solution from macOS:
‘You will require a copy of the Freedesktop.org shared-mime-info database to be available. If you’re on Linux, it’s probably available via your package manager, and will probably be in the location it’s being looked for when the gem is installed.
macOS users can install the database via Homebrew with brew install shared-mime-info.’
https://github.com/mimemagicrb/mimemagic
Other solutions may update more gems than you’d like.
Another solution is to edit your
Gemfile.lock
Find the line that says
mimemagic (0.3.5)
Replace with
mimemagic (0.3.10)
Or whatever is the highest 0.3.x version you find here: https://github.com/mimemagicrb/mimemagic/tags
rename/remove the Gemfile.lock
Bundle install