[RUBY] Ich möchte Geräte in Rails hinzufügen, kann die Installation jedoch nicht bündeln

Beim Erstellen der Umgebung mit Docker und Hinzufügen von Edelsteinen ist ein Fehler aufgetreten. Ich werde Informationen als Memorandum teilen!

Entwicklungsumgebung

docker rails (5.2.0) ruby (2.7.1) mysql (5.7) nginx puma

Fehlerinhalt

Als ich das Devise Gem in Gemfile und ** Docker-Compose Run - RM Rails Bundle Install ** hinzufügte, trat der folgende Fehler auf

~ RailsApp % docker-compose run --rm rails bundle install              
Starting railsapp_db_1 ... done
Fetching gem metadata from https://rubygems.org/.............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies....
Bundler could not find compatible versions for gem "railties":         
  In snapshot (Gemfile.lock):
    railties (= 5.2.4.3)

  In Gemfile:
    devise (= 4.1.0) was resolved to 4.1.0, which depends on
      railties (< 5.1, >= 4.1.0)

    rails (~> 5.2.2) was resolved to 5.2.4.3, which depends on
      railties (= 5.2.4.3)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Ich wusste nicht, was die Ursache war, aber vorerst hieß es: "** Bundle-Update ** kann es lösen." ** Docker-Compose ausführen --rm Rails Bundle Update ausführen **

↓↓↓↓↓↓↓↓

~ RailsApp % docker-compose run --rm rails bundle update           
Starting railsapp_db_1 ... done
Fetching gem metadata from https://rubygems.org/.............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...........................
Bundler could not find compatible versions for gem "railties":      
  In snapshot (Gemfile.lock):
    railties (= 5.2.4.3)

  In Gemfile:
    devise (= 4.1.0) was resolved to 4.1.0, which depends on
      railties (< 5.1, >= 4.1.0)

    rails (~> 5.2.2) was resolved to 5.2.4.3, which depends on
      railties (= 5.2.4.3)

Es hat nicht funktioniert ...

Ursache

Aus der Schlussfolgerung geht hervor, dass die Fehlerursache darin bestand, dass das Juwel ** nicht in der Liste enthalten war. ** ** **
Ich habe auf den folgenden Artikel verwiesen. https://qiita.com/hatorijobs/items/2928e152f22d009b07d0

Wenn Sie diesen Artikel so ausführen, wie er ist, wird er behoben. Wenn Sie jedoch mit Docker arbeiten, gibt es einige Befehle Es ist anders, also werde ich es hier erklären.

Problemumgehung

Arbeiten Sie in der folgenden Reihenfolge.

1. docker-compose exec [Beliebiger Dienstname]Überprüfen Sie die Edelsteinliste mit der Edelsteinliste und stellen Sie sicher, dass es keine Edelsteine gibt.

2. docker-compose exec [Beliebiger Dienstname]Installiere das Gerät mit gem Installiere das Gerät.

3.Wieder Docker-compose exec [Beliebiger Dienstname]Überprüfen Sie die Edelsteinliste mit Edelsteinliste und entwerfen Sie(4.7.2)Stellen Sie sicher, dass es gibt.

4.In Gemfile**gem 'devise','4.7.2'Beschreiben

5. docker-compose run --Führen Sie das rm Rails-Bundle-Update aus

Schauen wir sie uns der Reihe nach an. ↓↓↓↓↓↓↓↓

** 1. docker-compose exec [beliebiger Dienstname] Überprüfen Sie die Liste der Edelsteine mit der Edelsteinliste und stellen Sie sicher, dass es keinen Edelstein gibt. ** ** **

~ RailsApp % docker-compose exec app gem list
  
*** LOCAL GEMS ***

actioncable (5.2.4.3, 5.2.2)
actionmailer (5.2.4.3, 5.2.2)
actionpack (5.2.4.3, 5.2.2)
actionview (5.2.4.3, 5.2.2)
actionjob (5.2.4.3, 5.2.2)

~Kürzung~

web-console (3.7.0)

** 2. docker-compose exec [beliebiger Dienstname] Installiere das Gerät mit gem install install devise. ** ** **

~ RailsApp % docker-compose exec app gem install devise
Fetching warden-1.2.8.gem
Fetching bcrypt-3.1.13.gem

~Kürzung~

Successfully installed devise-4.7.2
5 gems installed

** 3. Überprüfen Sie die Liste der Edelsteine erneut mit der Edelsteinliste docker-compose exec [beliebiger Dienstname] und stellen Sie sicher, dass das Gerät (4.7.2) vorhanden ist. ** ** **

~ RailsApp % docker-compose exec app gem list
  
*** LOCAL GEMS ***

actioncable (5.2.4.3, 5.2.2)
actionmailer (5.2.4.3, 5.2.2)
actionpack (5.2.4.3, 5.2.2)
actionview (5.2.4.3, 5.2.2)
actionjob (5.2.4.3, 5.2.2)

~Kürzung~

devise (4.7.2)

~Kürzung~

web-console (3.7.0)

** 4. Schreibe gem'devise ',' 4.7.2 'in Gemfile **

Gemfile.


source 'https://rubygems.org'


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.0.0', '>= 5.0.2.1'
# Use mysql as the database for Active Record
gem 'mysql2', '>= 0.3.18', '< 0.5'
# Use Puma as the app server

~Kürzung~

#Hinzufügung der Anmeldefunktion
gem 'devise','4.7.2'

~Kürzung~

** 5. Docker-Compose ausführen --rm Rails Bundle Update ausführen **

~ RailsApp % docker-compose run --rm rails bundle update

Wenn dies kein Fehler ist, gewinnen wir

Was mir aufgefallen ist

Ich habe einige Dinge beim Umgang mit Fehlern bemerkt, deshalb werde ich sie teilen.

docker-Führen Sie compose exec app gem install devise aus, um die neueste Version von gem zu installieren.
Wir haben entschieden, dass es kein Problem mit der neuesten Version gibt, daher haben wir die Erklärung zur Angabe der Version weggelassen.
* Wenn Sie wissen, wie es geht, lassen Sie es mich bitte wissen!

Übrigens habe ich eine Site gefunden, auf der der gesamte Versionsverlauf des Geräts veröffentlicht wird, sodass ich die URL verlinken werde. https://rubygems.org/gems/devise/versions


[Beliebiger Dienstname]Was ist Docker?-compose.Dies ist der von yml angegebene Dienstname.
Es kann willkürlich entschieden werden, aber es scheint, dass es viele Leute gibt, die es im Web einstellen, wie z. B. Datenbank oder App auf einer beliebigen Website.

Am Ende

In Bezug auf Rails und Docker werde ich weiterhin regelmäßig Artikel über Fehler zur Ausgabe veröffentlichen. Ich denke auch, dass es einige Punkte gab, die ich in meinem ersten Beitrag nicht erreichen konnte, aber danke, dass Sie bis zum Ende gelesen haben! !! !!

das ist alles

Recommended Posts

Ich möchte Geräte in Rails hinzufügen, kann die Installation jedoch nicht bündeln
Ich möchte ein kleines Symbol in Rails verwenden
Ich möchte Benutzer mit Devise + OmniAuth bei Rails authentifizieren
Ich möchte eine Funktion in der Rails Console definieren
[Schienen] Spalte zum Entwickeln hinzufügen
Super einfach in 2 Schritten! So installieren Sie devise! !! (Schienen 5 Version)
[Schienen] Fügen Sie starke Parameter hinzu, um sie zu entwickeln
So installieren Sie Swiper in Rails
Wenn Sie devise eingeführt haben, aber weitere Spalten hinzufügen möchten
Ich sehe keinen Fehler bei der Installation des Rails-Bundles ... der Lösung
[Rails] Ich möchte beim Übergang mit link_to Daten zu Params hinzufügen
Ich möchte PHP 7.2 unter Ubuntu 20.04 installieren.
Rails können nicht auf dem Mac installiert werden
Ich möchte @Autowired in Servlet verwenden
Ich möchte eine E-Mail in Java senden.
Ich möchte von npm richtig abschließen [2020]
Ich habe versucht, die Sitzung in Rails zu organisieren
Fehler bei der Bundle-Installation beim Ausführen neuer Schienen
Ich möchte APP_HOME an Logback in Gradle übergeben
rsync4j - Ich möchte rsync in Java berühren.
So fügen Sie die html.erb-Klasse in Rails bedingt hinzu
Ich möchte irgendwann sogar in Kotlin sein
[Schienen] In Gerät hinzugefügt: Benutzername nicht zur Datenbank hinzugefügt
[Rails] Ich möchte CSS mit Webpacker laden
Ich möchte den Wert in Ruby erhalten
Ich möchte Combine auch in UIKit verwenden.
Ich möchte so etwas wie "cls" in Java machen
Ich möchte eine TraceId in das Protokoll einbetten
Führen Sie devise with Rails ein, um Benutzerverwaltungsfunktionen zu implementieren
[Ruby] puma kann nicht auf einem Mac installiert werden [Rails usw.]
[Rails] Ich möchte das Linkziel von link_to auf einer separaten Registerkarte anzeigen
Ich möchte Schlangenfälle mit Tabellendefinitionen stoppen
Ich möchte in RSpec auf einen GoogleMap-Pin klicken
Ich möchte der Kommentarfunktion eine Löschfunktion hinzufügen
Nachdem ich einen Artikel mit Rails Simple Calendar veröffentlicht habe, möchte ich ihn im Kalender wiedergeben.
Ich kann die Installation nach dem Ändern der Ruby-Version nicht bündeln
[Rails] [Bootstrap] Ich möchte die Schriftgröße entsprechend ändern
Ich möchte eine mit Rails 6 erstellte App an GitHub senden
Ich war süchtig danach, default_url_options mit der Einführung von Rails zu setzen
Ich möchte mit Ruby (ABC177E) eine schnelle Primfaktorisierung durchführen.
Ich möchte ein Formular erstellen, um die Kategorie [Schienen] auszuwählen
Ich möchte manuell eine Autorisierungs-E-Mail mit Devise senden
Ich möchte im gespeicherten Zustand zum selben Bildschirm wechseln
Ich möchte die if-else-Anweisung für bedingte Verzweigungen in Java vereinfachen
Ich möchte Zeichen konvertieren ...
(Für Anfänger) [Rails] Installieren Sie das Gerät
[Rails] So installieren Sie simple_calendar
[Rails] So installieren Sie reCAPTCHA
Ich habe versucht, die Ajax-Verarbeitung der ähnlichen Funktion in Rails zu implementieren