2017-05-26 4 views
2

Ich versuche, Docker für mein Projekt einzurichten. Ich habe versucht, actionpack 5.0.2 zu installieren, aber es hat mir nicht gut getan. Ich folge einem Tutorial zur Einrichtung, also denke ich, dass es Probleme mit der Version gibt. Wenn ich Docker-komponieren laufen, ist dies, was ich bekommen:So lösen Sie Fehler "Bundler konnte keine kompatible Version für Edelstein X finden"

source 'https://rubygems.org' 

git_source(:github) do |repo_name| 
    repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") 
    "https://github.com/#{repo_name}.git" 
end 
gem 'devise' 
gem 'bootstrap-sass', '~> 3.3.6' 
gem 'sass-rails', '>= 3.2' 
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '~> 5.0.2' 
# Use sqlite3 as the database for Active Record 
#gem 'sqlite3' 
# Use Puma as the app server 
gem 'puma', '~> 3.0' 
# Use Uglifier as compressor for JavaScript assets 
gem 'uglifier', '>= 1.3.0' 
# Use CoffeeScript for .coffee assets and views 
gem 'coffee-rails', '~> 4.2' 
# See https://github.com/rails/execjs#readme for more supported runtimes 
# gem 'therubyracer', platforms: :ruby 

# Use jquery as the JavaScript library 
gem 'jquery-rails' 
# 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', '~> 3.0' 
# Use ActiveModel has_secure_password 
gem 'bcrypt', :platforms => :ruby 

# Use Capistrano for deployment 
# gem 'capistrano-rails', group: :development 

group :development, :test do 
    # Call 'byebug' anywhere in the code to stop execution and get a debugger console 
    gem 'byebug', platform: :mri 
end 

group :development do 
    # Access an IRB console on exception pages or by using <%= console %> anywhere in the code. 
    gem 'web-console', '>= 3.3.0' 
end 

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem 
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 
gem 'unicorn', '~> 4.9' 
gem 'pg', '~> 0.18.3' 
gem 'sidekiq', '~> 4.0.1' 
gem 'redis-rails', '~> 4.0.0' 
gem 'actionpack', '~> 5.1', '>= 5.1.1' 

EDIT:

Bundler could not find compatible versions for gem "actionpack": 
    In Gemfile: 
    rails (~> 5.0.2) ruby depends on 
    actionpack (= 5.0.2) ruby 

    actionpack (>= 5.1.1, ~> 5.1) ruby 

Hier mein Gemfile ist Versucht das Juwel Action vollständig aus dem gemfile entfernen, neue Fragen auf Docker verursacht -compose up:

Bundler could not find compatible versions for gem "actionpack": 
    In Gemfile: 
    rails (~> 5.0.2) ruby depends on 
     actioncable (= 5.0.2) ruby depends on 
     actionpack (= 5.0.2) ruby 

    rails (~> 5.0.2) ruby depends on 
     actioncable (= 5.0.2) ruby depends on 
     actionpack (= 5.0.2) ruby 

    rails (~> 5.0.2) ruby depends on 
     actioncable (= 5.0.2) ruby depends on 
     actionpack (= 5.0.2) ruby 

    rails (~> 5.0.2) ruby depends on 
     actioncable (= 5.0.2) ruby depends on 
     actionpack (= 5.0.2) ruby 

    redis-rails (~> 4.0.0) ruby depends on 
     redis-actionpack (~> 4) ruby depends on 
     actionpack (~> 4) ruby 
ERROR: Service 'drkiq' failed to build: The command '/bin/sh -c bundle install' returned a non-zero code: 6 
+0

zu 'Bündel update' Versuchen und dann' Bündel install' –

+0

^^ Nein. Die Fehlermeldung ist ziemlich selbsterklärend; Sie haben eine Abhängigkeit, die nicht übereinstimmt. –

Antwort

0

Diese beiden Linien in Ihrem Gemfile einen Abhängigkeitskonflikt verursacht:

gem 'rails', '~> 5.0.2' 
gem 'actionpack', '~> 5.1', '>= 5.1.1' 

~> 5.0.2 bedeutet "Größer als 5.0.2 und weniger als 5.1.0".

'~> 5.1', '>= 5.1.1' bedeutet "Größer als 5.1.1 und weniger als 6.0.0.".

Daher gibt es einen Konflikt, und Bundler löst nicht auf. Sie müssen entweder rails aktualisieren oder actionpack downgraden.

Die einfachste Lösung ist wahrscheinlich nur actionpack vom Gemfile zu entfernen, da Sie nicht wirklich brauchen, es überhaupt zu spezifizieren. actionpack ist eine Abhängigkeit von rails, so dass es unabhängig installiert wird.

Ich würde auch vorschlagen, dass Sie die '~> 5.0.2' Version Einschränkung entfernen auf rails, wenn Sie einen guten Grund, um die Versionsnummer zu sperren haben.

-Update in Bezug auf Ihren zweiten Fehler:

Dieser Fehler ist sehr ähnlich zu dem oben; es ist ziemlich selbsterklärend.

rails (~> 5.0.2) ruby depends on 
    [...] 
    actionpack (= 5.0.2) ruby 

redis-rails (~> 4.0.0) ruby depends on 
    [...] 
    actionpack (~> 4) ruby 

Genau wie oben, haben Sie ein Juwel, das v4.x.x auf Actionpack-Version abhängig ist, und ein weiteres Juwel, das auf Action v5.0.2 abhängt.

Sie müssen die Versionsbeschränkung in Ihrem Gemfile irgendwie aktualisieren/lösen.Zum Beispiel könnten Sie schreiben:

gem 'redis-rails', '~> 5.0' 
+0

Ich entfernte die Zeile, aber es gab mir neue Abhängigkeitsprobleme. Ich habe es @ RichardAEs Antwort eingefügt. –

+0

Bitte [aktualisieren Sie die ursprüngliche Frage] (https://Stackoverflow.com/posts/44198818/edit) (mit der richtigen Formatierung), so dass wir alle es vollständig sehen können. Der Fehler sollte jedoch hoffentlich ziemlich selbsterklärend sein. –

+0

Habe, danke für den Vorschlag. –

2

Sie angegeben haben Action mehr zu verwenden oder gleich 5,1:

gem 'actionpack', '~> 5.1', '>= 5.1.1' 

Allerdings ist Rails 5.0.2 speziell für Actionpack 5.0.2 gesperrt. Entferne die obige Zeile aus deiner Gemfile, es ist überflüssig.

+0

Ich tat es und versuchte erneut zu komponieren. Ausgang: In Gemfile: Schienen (~> 5.0.2) Rubin hängt von actioncable (= 5.0.2) Rubin hängt von Action (= 5.0.2) Rubin Schienen (~> 5.0.2) Rubin abhängig von actioncable (= 5.0.2) Rubin auf Action abhängt (= 5.0.2) Rubin Schienen (~> 5.0.2) Rubin auf actioncable abhängt (= 5.0.2) Rubin hängt von Action (= 5.0.2) ruby ​​ rails (~> 5.0.2) ruby ​​ist abhängig von aktionskabel (= 5.0.2) ruby ​​hängt von actionpack (= 5.0.2) ruby ​​ –

+0

Warum sind Verwenden Sie nicht die neueste Version von Rails aus Interesse? – RichardAE

+0

Kein wirklicher Grund. Es ist nur die Version, die bereits vorhanden war, als ich das Projekt erstellt habe. –

0

Anscheinend haben Sie ein Abhängigkeitsproblem.

In Ihrem Gemfile versuchen Sie es mit:

gem 'rails', '~> 5.1.0' 
gem 'actionpack', '~> 5.1.1' 
Verwandte Themen