[RUBY] Résolution du problème selon lequel les commandes Rails ne pouvaient pas être utilisées après l'utilisation de l'environnement de développement avec Docker

Je pensais vraiment faire quelque chose, alors j'ai fini de créer l'environnement Rails 6 dans l'environnement de développement. À propos, l'article dont j'ai parlé est

Pour les autres pièces qui n'ont pas fonctionné, ・ Mémo de construction de l'environnement Rails6 + MySQL + Nginx + Unicorn + Docker --Qiita

J'ai fait référence à l'article ci-dessus.

Et cette fois, j'ai un peu trébuché au début du cours élémentaire, je vais donc en parler un peu.

Faisons la première page du site immédiatement!

Je voulais faire une première page avec des rails,

Terminal


$ rails g controller home top

Entrer, Alors ...

Résultat de sortie


Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails

Avec l'aide de Google traduction ↓ __Rails n'est actuellement pas installé sur ce système. Pour obtenir la dernière version, entrez $ sudo gem install rails. __

Hmmm, pourquoi Rails 6 est-il définitivement installé? J'étais inquiet environ 0,5 seconde, mais la réponse était simple.

Rails n'existe que dans Docker

Tout d'abord, qu'est-ce que Docker?

Docker est un logiciel open source ou une plateforme ouverte pour développer, déployer et exécuter des applications à l'aide de container virtualization. Docker isole les applications de l'environnement de développement et d'exécution grâce à la virtualisation au niveau du système d'exploitation à l'aide de la virtualisation de conteneur, ce qui permet de fournir rapidement des applications. De plus, l'environnement lui-même peut être géré comme un code (image) de la même manière qu'une application. En utilisant Docker pour le développement, les tests et le déploiement, l'écart de temps entre «l'écriture du code» et «l'exécution du code en tant que produit» peut être considérablement réduit. Citation: Docker-Wikipedia

Comme vous pouvez le voir sur wikipedia, Docker est une technologie de virtualisation. En d'autres termes, j'ai installé Rails en utilisant docker-compose, mais maintenant je peux l'utiliser dans Docker! C'est une bonne traduction à reconnaître à propos de __.

Donc __Rails n'est actuellement pas installé sur ce système. Pour obtenir la dernière version, entrez $ sudo gem install rails. C'est devenu __!

La solution est la commande Docker

Terminal


$ docker-compose run web

C'est un sort magique.

Après cela, si vous ajoutez la commande précédente ...

Terminal


$ docker-compose run web rails g contoller home top

Résultat de sortie


Starting guminoki_db_1 ... done
Could not find generator 'contoller'. Maybe you meant "controller"?
Run `rails generate --help` for more options.

Cela semble être une faute de frappe dans le contrôleur, alors réessayez.

Terminal


$ docker-compose run web rails g contoroller home top

Résultat de sortie


Starting guminoki_db_1 ... done
      create  app/controllers/home_controller.rb
       route  get 'home/top'
      invoke  erb
      create    app/views/home
      create    app/views/home/top.html.erb
      invoke  test_unit
      create    test/controllers/home_controller_test.rb
      invoke  helper
      create    app/helpers/home_helper.rb
      invoke    test_unit
      invoke  assets
      invoke    scss
      create      app/assets/stylesheets/home.scss

C'est fait! Tu l'as fait!

à la fin

Auparavant, j'utilisais également __ $ docker-compose run web__ lors de l'écriture d'applications dans Django. J'ai complètement oublié (transpirer)

Exemple de démarrage du serveur de développement Django


$ docker-compose run web python3 manage.py runserver

en outre

Terminal


$ docker-compose run --rm web rails g contoroller home top

Si vous ajoutez l'option -- rm comme ceci, le conteneur sera supprimé automatiquement lorsque le conteneur sera fermé, ce qui est très pratique.

Recommended Posts

Résolution du problème selon lequel les commandes Rails ne pouvaient pas être utilisées après l'utilisation de l'environnement de développement avec Docker
Installez Docker sur CentOS8. Le problème que le nom n'a pas pu être résolu a été résolu.
À propos de localhost: 4040 n'est pas accessible après l'exécution de Spark avec Docker
Commandes souvent utilisées dans l'environnement de développement lors de l'implémentation de Python
Reconstruisez l'environnement de développement de Django avec Docker! !! !! !!
Préparez l'environnement de développement avec anyenv
L'histoire de l'utilisation de mysqlclient car PyMySQL ne peut pas être utilisé avec Django 2.2
Derrière le flyer: utiliser Docker avec Python
À propos de l'environnement de développement que vous utilisez
J'ai essayé de résumer les opérations susceptibles d'être utilisées avec numpy-stl
L'histoire de l'impossibilité de créer un point d'accès en bande 5 GHz sur Ubuntu