En touchant d'abord le docker, j'ai mis l'application Rails en cours de création dans un conteneur et j'ai d'abord créé un environnement de développement. Au fait, je l'ai présenté en me référant à cet article. [Ruby on Rails, je veux présenter Docker à une application que j'ai créée à mi-chemin](https://qiita.com/majorboy/items/9fbfc78fc7bbc1f35e77#5-%E3%82%B3%E3%83% B3% E3% 83% 86% E3% 83% 8A% E3% 82% 92build% E3% 81% 99% E3% 82% 8B-docker-compose-build)
Application Rails créée
Mac OS Catalina Ruby 2.6.5 Rails 6.0.0 MySQL 5.6.47
Il y a deux fichiers créés cette fois, "Dockerfile" et "docker-compose.yml". (Comme l'application rails a déjà été créée en tant que prémisse, il n'est pas nécessaire de créer de nouveaux "Gemfile" et "Gemfile.lock" cette fois.) ** Cependant, Gemfile.lock nécessite l'installation du bundle en supprimant toutes les descriptions une fois avant de créer le conteneur. ** **
Gemfile.lock
#S'il y a une description, supprimez-la.
#Procédez comme suit avant de construire le conteneur
% docker-compose run web bundle install
Puis construisez le conteneur
% docker-compose build
Ensuite, je dois également créer une base de données pour docker, alors exécutez ce qui suit
% docker-compose run web bundle exec rake db:create
% docker-compose run web bundle exec rake db:migrate
Cela va démarrer le conteneur
% docker-compose up
J'ai pu le démarrer, mais je n'ai pas pu me connecter même si je l'ai vérifié avec un navigateur. Vérifiez d'abord l'état du conteneur.
#Afficher le conteneur Docker en cours d'exécution
% docker ps
=>
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad25b9c231b9 mysql:5.7 "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 33060/tcp, 0.0.0.0:4306->3306/tcp drill_app2_db_1
Seul Mysql fonctionne. Si vous regardez souvent l'écran de démarrage,
web_1 | sh: 1: yarn: not found
web_1 | ========================================
web_1 | Your Yarn packages are out of date!
web_1 | Please run `yarn install --check-files` to update.
web_1 | ========================================
web_1 | Exiting
Le côté web? (Je ne sais pas comment le dire) n'a pas commencé. Le fil semble vieux, je vais donc le mettre à jour.
% docker-compose run web yarn upgrate
=>
Error response from daemon: OCI runtime create failed: container_linux.go:349:
starting container process caused "exec: \"yarn\": executable file not found in $PATH": unknown
Cela donne également une erreur et ne peut pas être mis à niveau. Quand je me demandais quoi faire, j'ai trouvé un article dans la même situation, je vais donc modifier les paramètres du fichier en fonction de cela. Docker-composer up n'est pas possible à cause du fil (Vos packages Yarn sont obsolètes!)
config/webpacker.yml
# Verifies that correct packages and versions are installed by inspecting package.json, yarn.lock, and node_modules
#Vrai ci-dessous=>Changer en faux
check_yarn_integrity: false
"check_yarn_integrity:" semble être un paramètre qui vous avertira si le paquet pour js est obsolète. Ici, désactivez-le une fois. J'ai vérifié l'option check_yarn_integrity de webpacker
Maintenant recommencez.
% docker-compose up
Ceci termine le démarrage pour le moment. Le navigateur s'affiche également. La connexion à mysql est également correcte.
Apparemment, Webpack a été inclus dans la série rails6, donc une erreur de fil est impliquée. Alors peut-être que c'était mal de supprimer Gemlock.file. (Désolé, il n'a pas encore été étudié en détail.)
Recommended Posts