2016-04-04 10 views
0

Ich habe Probleme bei der Bereitstellung meines Docker-Containers, hauptsächlich weil bundler nicht in der Lage ist, den Befehl install auszuführen. bundle install lokal mit passenger läuft scheint gut zu funktionieren, nur die Bereitstellungsprozedur verursacht Probleme beim Einrichten der Edelsteine.Bundle-Installation schlägt in Rails Docker-Container fehl

Ich bin relativ neu zu Docker und ich würde mich nicht ein Rails Experte nennen. Das heißt, ich habe Schwierigkeiten zu verstehen, wie genau bundler es schafft, das Ganze auf diese Weise durcheinander zu bringen (besonders in Verbindung mit Docker).

Ich benutze das Basisbild des Passagiers-Andockers, wenn das relevant ist. Hier

ist mein Gemfile:

gem 'doorkeeper' 
gem 'doorkeeper-jwt' 
gem 'aws-sdk-rails' 
gem 'rack-cors', :require => 'rack/cors' 
gem 'active_model_serializers', github: 'rails-api/active_model_serializers' 
gem 'passenger' 
gem 'rails', '4.2.6' 
gem 'rails-api' 
gem 'pg' 
gem 'devise' 
gem 'schema_plus' 
gem 'pusher' 
gem 'sdoc', '~> 0.4.0', group: :doc 

group :development, :test do 

    gem 'byebug' 
    gem 'web-console', '~> 2.0' 
    gem 'spring' 
    gem 'rspec-rails' 
    gem 'factory_girl_rails', '~> 4.0' 
    gem 'database_cleaner' 

end 

Und hier ist (einen Teil) der Dockerfile:

RUN mkdir /home/app/myapp 
WORKDIR /home/app/myapp 

COPY Gemfile /home/app/myapp/ 
COPY Gemfile.lock /home/app/myapp/ 
RUN chown -R app:app /home/app/myapp 
RUN sudo -u app bundle install --deployment --verbose --path vendor/cache 

ADD . /home/app/myapp 
RUN chown -R app:app /home/app/myapp 

Wenn ich zu implementieren versuchen, bekomme ich folgende Fehler :

Message from application:

It looks like Bundler could not find a gem. Maybe you didn't install all the gems that this application needs. To install your gems, please run:

bundle install

If that didn't work, then the problem is probably caused by your application being run under a different environment than it's supposed to. Please check the following:

  1. Is this app supposed to be run as the app user?
  2. Is this app being run on the correct Ruby interpreter? Below you will see which Ruby interpreter Phusion Passenger attempted to use.

-------- The exception is as follows: -------

Could not find rake-11.1.2 in any of the sources (Bundler::GemNotFound)
 
/var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/spec_set.rb:92:in 
block in materialize'
/var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/spec_set.rb:85:in
map!'
/var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/spec_set.rb:85:in materialize'
/var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/definition.rb:140:in
specs'
/var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/definition.rb:185:in specs_for'
/var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/definition.rb:174:in
requested_specs'
/var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/environment.rb:18:in requested_specs'
/var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/runtime.rb:13:in
setup'
/var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler.rb:127:in setup'
/var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/setup.rb:18:in
<top (required)>'
/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require&#39;
/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in
require'
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:430:in activate_gem&#39;
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:297:in
block in run_load_path_setup_code'
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:435:in running_bundler&#39;
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:296:in
run_load_path_setup_code'
/usr/share/passenger/helper-scripts/rack-preloader.rb:100:in preload_app&#39;
/usr/share/passenger/helper-scripts/rack-preloader.rb:156:in
<module:App>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:30:in &lt;module:PhusionPassenger&gt;&#39;
/usr/share/passenger/helper-scripts/rack-preloader.rb:29:in
<main>'

Antwort