Okay, ich habe einen Fehler beim Erstellen meines Docker-Images (denke an einen Deploy-Schritt oder an Heroku Deploy, wenn du mit Docker nicht vertraut bist).Rake Assets Precompile ohne Edelsteine in Entwicklungs- oder Testgruppen
Gems, die in den :test
und :development
Gruppen sind für ihre ausgesehen, als die precompile Schritt geschieht, und da ich --without development test
gebündelt - wie ich will nicht QT haben einfach so, dass capybara-webkit
nicht Fehler auf Bündel - Der Precompile-Schritt gibt einen Fehler aus.
Der Fehler ist immer eine Variante:
Could not find <gem-name> in any of the sources (Bundler::GemNotFound)
Mein Gemfile:
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.9'
# Use sqlite3 as the database for Active Record
# gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Unicorn as the app server
# gem 'unicorn'
gem 'unicorn', '~> 4.8.3'
gem 'unicorn-worker-killer', '~> 0.4.2'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
gem 'rdf', '~> 1.1.0'
gem 'tripod', '~> 0.11.1'
gem 'devise'
gem 'devise_invitable'
gem 'authority'
gem 'mongoid', '~> 4.0.0'
gem 'bootstrap-sass', '~> 3.3.3'
# pagination
gem 'kaminari', '~> 0.16.3'
gem 'bootstrap-kaminari-views'
# background processing
gem 'sidekiq'
gem 'sidekiq-status'
gem 'request_store', '~> 1.1.0'
# add memoization
gem 'memoist', '~> 0.12.0'
# dropbox gem for uploads etc
gem 'dropbox-sdk', '~> 1.6.4'
# error reporting
gem 'sentry-raven'
group :development, :test do
gem "rspec-rails", "~> 3.0.0"
gem "factory_girl_rails", "~> 4.5.0"
gem "capybara", "~> 2.4"
gem "database_cleaner"
# gem "selenium-webdriver"
gem 'poltergeist'
gem 'capybara-webkit'
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
#gem 'byebug'
gem 'pry-byebug'
gem 'better_errors', '~> 2.1.1'
# Access an IRB console on exception pages or by using <%= console %> in views
gem 'web-console', '~> 2.0'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
# gem 'spring'
end
Die Zeile in der Dockerfile
, wo der Fehler passiert ist:
RUN /bin/bash -l -c "RAILS_ENV=production bundle exec rake assets:precompile RAILS_GROUPS=assets --trace"
Also im Grunde, Was ich wirklich will, ist das Äquivalent für --without test development
für die Rake-Aufgabe. Kann ich das machen? Wie pro einige Ratschläge habe ich bereits geändert (in application.rb
):
Bundler.require(*Rails.groups)
zu
Bundler.require(:default, :assets, Rails.env)
Anybody haben genug Rails-fu, diese zu lösen? Ich habe in der Dokumentation und in SO nachgeschaut und meine Kollegen gefragt, aber ich hämmere immer noch meinen Kopf gegen die Wand.
Haben Sie das jemals herausgefunden, weil ich diesen Edelstein nicht gefunden habe, der in einem Quellfehler auch über eine Abhängigkeit (Regentropfen) eines Edelsteins (Einhorn) * steht, der während des Docker-Build-Prozesses –
installiert wird Genau welche Edelsteine werden nicht gefunden? Am wahrscheinlichsten ist, dass einer der Edelsteine in Ihrer ': development,: test'-Gruppe eine Abhängigkeit zieht, die auch von der Asset-Pipeline verwendet wird. Sie müssen diese Abhängigkeit isolieren und in Ihre Gemfile außerhalb der ': development,: test'-Gruppe einfügen. – Chris