[RUBY] Je veux ajouter un appareil dans Rails, mais je ne peux pas grouper l'installation

Une erreur s'est produite lors de la création de l'environnement avec docker et de l'ajout de gemmes. Je partagerai des informations sous forme de mémorandum!

Environnement de développement

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

contenu de l'erreur

Lorsque j'ai ajouté le joyau de devise dans le Gemfile et ** docker-compose run --rm rails bundle install **, l'erreur suivante s'est produite

~ 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.

Je ne savais pas quelle en était la cause, mais pour le moment, il disait: «** la mise à jour du bundle ** peut le résoudre. ** exécuter docker-compose run --rm rails bundle update **

↓↓↓↓↓↓↓↓

~ 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)

Ça n'a pas marché ...

Cause

D'après la conclusion, il semble que la cause de l'erreur était que le joyau ** ne figurait pas dans la liste. ** **
J'ai fait référence à l'article suivant. https://qiita.com/hatorijobs/items/2928e152f22d009b07d0

Si vous exécutez cet article tel quel, il sera résolu, mais si vous travaillez avec docker, il existe des commandes C'est différent, je vais donc l'expliquer ici.

solution de contournement

Opérez dans l'ordre suivant.

1. docker-compose exec [Nom de service arbitraire]Vérifiez la liste des pierres précieuses avec la liste des pierres précieuses et assurez-vous qu'il n'y a pas de pierres précieuses.

2. docker-compose exec [Nom de service arbitraire]Installez le dispositif avec le dispositif d'installation gem.

3.Docker à nouveau-compose exec [Tout nom de service]Vérifiez la liste des gemmes avec la liste des gemmes et inventez(4.7.2)Assurez-vous qu'il y en a.

4.Dans Gemfile**gem 'devise','4.7.2'Décris

5. docker-compose run --Exécuter la mise à jour du bundle RM Rails

Regardons-les dans l'ordre. ↓↓↓↓↓↓↓↓

** 1. docker-compose exec [nom de service arbitraire] Vérifiez la liste des gemmes avec la liste des gemmes et confirmez qu'il n'y a pas de gemme de devise. ** **

~ 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)

~réduction~

web-console (3.7.0)

** 2. docker-compose exec [nom de service arbitraire] Installez le dispositif avec le dispositif d'installation gem. ** **

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

~réduction~

Successfully installed devise-4.7.2
5 gems installed

** 3. Vérifiez à nouveau la liste des gemmes avec la liste de gemmes docker-compose exec [nom de service arbitraire] et confirmez que le dispositif (4.7.2) existe. ** **

~ 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)

~réduction~

devise (4.7.2)

~réduction~

web-console (3.7.0)

** 4. Écrivez gem'devise ',' 4.7.2 'dans 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

~réduction~

#Ajout de la fonction de connexion
gem 'devise','4.7.2'

~réduction~

** 5. Exécutez docker-compose run --rm rails bundle update **

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

S'il n'y a pas d'erreur, nous gagnons

Ce que j'ai remarqué

J'ai remarqué certaines choses en traitant des erreurs, je vais donc les partager.

docker-Exécutez composer exec app gem install dispositif pour installer la dernière version de gem.
Nous avons décidé qu'il n'y avait pas de problème avec la dernière version, nous avons donc omis l'explication sur la façon de spécifier la version.
* Si vous savez comment faire, faites-le moi savoir!

En passant, j'ai trouvé un site où toute l'historique des versions de l'appareil est publiée, je vais donc lier l'URL. https://rubygems.org/gems/devise/versions


[Tout nom de service]Qu'est-ce que docker-compose.Il s'agit du nom de service spécifié par yml.
Cela peut être décidé de manière arbitraire, mais il semble que de nombreuses personnes l'utilisent sur le Web, comme db ou une application, sur n'importe quel site.

À la fin

En ce qui concerne les rails et le docker, je continuerai à publier régulièrement des articles sur les erreurs pour la sortie. De plus, je pense qu'il y avait certains points que je n'ai pas pu atteindre dans mon premier post, mais merci d'avoir lu jusqu'au bout! !! !!

c'est tout

Recommended Posts

Je veux ajouter un appareil dans Rails, mais je ne peux pas grouper l'installation
Je veux utiliser une petite icône dans Rails
Je souhaite authentifier les utilisateurs auprès de Rails avec Devise + OmniAuth
Je souhaite définir une fonction dans la console Rails
[Rails] Ajouter une colonne à concevoir
Super facile en 2 étapes! Comment installer la devise! !! (version rails 5)
[Rails] Ajoutez des paramètres forts pour concevoir
Comment installer Swiper in Rails
Lorsque vous avez introduit la devise mais que vous souhaitez ajouter plus de colonnes
Je ne vois pas d'erreur dans l'installation du bundle Rails ... la solution
[Rails] Je souhaite ajouter des données aux paramètres lors de la transition avec link_to
Je souhaite installer PHP 7.2 sur Ubuntu 20.04.
Les rails ne peuvent pas être installés sur Mac
Je veux utiliser @Autowired dans Servlet
Je souhaite envoyer un e-mail en Java.
Je souhaite terminer correctement l'installation de npm [2020]
J'ai essayé d'organiser la session en Rails
Erreur lors de l'installation de l'ensemble lors de l'exécution de rails neufs
Je souhaite transmettre APP_HOME pour me connecter à Gradle
rsync4j --Je veux toucher rsync en Java.
Comment ajouter conditionnellement une classe html.erb dans Rails
Je veux être finalement même à kotlin
[Rails] Ajouté dans le modèle: nom d'utilisateur non ajouté à la base de données
[Rails] Je veux charger du CSS avec webpacker
Je veux obtenir la valeur en Ruby
Je souhaite également utiliser Combine dans UIKit.
Je veux faire quelque chose comme "cls" en Java
Je veux intégrer n'importe quel TraceId dans le journal
Introduire la conception avec Rails pour implémenter la fonctionnalité de gestion des utilisateurs
[Ruby] puma ne peut pas être installé sur Mac [Rails, etc.]
[Rails] Je souhaite afficher la destination du lien de link_to dans un onglet séparé
Je veux arrêter les cas de serpent avec des définitions de table
Je veux cliquer sur une broche GoogleMap dans RSpec
Je souhaite ajouter une fonction de suppression à la fonction de commentaire
Après avoir publié un article avec Rails Simple Calendar, je souhaite le refléter dans le calendrier.
Je ne peux pas grouper l'installation après avoir changé la version de Ruby
[Rails] [bootstrap] Je souhaite modifier la taille de la police de manière réactive
Je veux pousser une application créée avec Rails 6 vers GitHub
J'étais accro à la configuration de default_url_options avec l'introduction de la conception de Rails
Je souhaite effectuer une factorisation prime rapide avec Ruby (ABC177E)
Je souhaite créer un formulaire pour sélectionner la catégorie [Rails]
Je souhaite envoyer manuellement un e-mail d'autorisation avec Devise
Je souhaite passer au même écran dans l'état enregistré
Je souhaite simplifier l'instruction if-else de la branche conditionnelle en Java
Je veux convertir des caractères ...
(Pour les débutants) [Rails] Installer Devise
[Rails] Comment installer simple_calendar
[Rails] Comment installer reCAPTCHA
J'ai essayé d'implémenter le traitement Ajax de la fonction similaire dans Rails