Beim Erstellen der Umgebung mit Docker und Hinzufügen von Edelsteinen ist ein Fehler aufgetreten. Ich werde Informationen als Memorandum teilen!
docker rails (5.2.0) ruby (2.7.1) mysql (5.7) nginx puma
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 ...
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.
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
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.
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