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?