2015-07-15 10 views
7

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.

+0

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 –

+0

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

Antwort

1
bundle install --path vendor/cache 

Versuchen Sie dies und lassen Sie mich wissen, wenn es nicht funktioniert!

+0

Danke, aber ich habe am Ende "capybara-webkit" aufgegeben, um es am Ende zu lösen. Hoffentlich wird es jemand anderem helfen! –