[RAILS] [Erreur] Concernant rbenv: ruby 2.5.1 n'est pas installé ot ~ lors de l'exécution du déploiement automatique

introduction

Ce message était accro à une erreur lorsque j'ai exécuté un déploiement automatique, je vais donc le partager.

contenu de l'erreur

[Deprecation Notice] Future versions of Capistrano will not load the Git SCM
plugin by default. To silence this deprecation warning, add the following to
your Capfile after `require "capistrano/deploy"`:

    require "capistrano/scm/git"
    install_plugin Capistrano::SCM::Git

00:00 rbenv:validate
      WARN  rbenv: ruby 2.5.1 is not installed or not found in $HOME/.rbenv/versions/ruby 2.5.1 on 54.95.87.53

Faire une hypothèse

1. require "capistrano/scm/git" On émet l'hypothèse qu'il existe une anomalie dans Capfile à partir de la description de require ~.

2. WARN rbenv: ruby 2.5.1 is not installed〜 D'après la description que ruby 2.5.1 n'est pas installé, on suppose que ruby 2.5.1 n'est pas installé et qu'il existe une différence de ver par rapport à l'environnement local. Est-ce suspect deploy.rb ...?

Capfile de vérification temporaire

require "capistrano/setup"
require "capistrano/deploy"
require 'capistrano/rbenv'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
require 'capistrano3/unicorn'
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git

Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }

Aucune anomalie particulière.

Vérification temporaire ou confirmation

J'ai exécuté ** ruby -v ** dans l'environnement de développement local et l'environnement de production (EC2), mais il n'y a pas de problème.

Vérification temporaire deploy.rb

deploy.rb


# config valid only for current version of Capistrano
#Décrit la version de capistrano. Continuer à utiliser la version fixe et éviter les problèmes dus aux changements de version
lock '3.14.1'

#Utilisé pour afficher les journaux Capistrano
set :application, 'chat-space'

#Spécifiez à partir de quel référentiel extraire l'application
set :repo_url,  '[email protected]:ken-sasaki-222/chat-space.git'

#Spécifiez un répertoire qui est couramment référencé même si la version change
set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system', 'public/uploads')

set :rbenv_type, :user
set :rbenv_ruby, 'ruby2.5.1' #Faites attention ici

#Quelle clé publique utiliser pour le déploiement
set :ssh_options, auth_methods: ['publickey'],
                  keys: ['~/.ssh/test_key.pem'] 

#Emplacement du fichier contenant le numéro de processus
set :unicorn_pid, -> { "#{shared_path}/tmp/pids/unicorn.pid" }

#Emplacement du fichier de configuration Unicorn
set :unicorn_config_path, -> { "#{current_path}/config/unicorn.rb" }
set :keep_releases, 5

#Description du redémarrage de Unicorn une fois le processus de déploiement terminé
after 'deploy:publishing', 'deploy:restart'
namespace :deploy do
  task :restart do
    invoke 'unicorn:restart'
  end
end

Il ne semble y avoir aucun problème avec ruby ver. Je pense ... La partie spécifiée par ver est ** 'ruby 2.5.1' **!

Correctement, «2.5.1» est OK! Si vous le réparez.

deploy.rb


#réduction

set :rbenv_type, :user
set :rbenv_ruby, '2.5.1' #Faites attention ici

#réduction

Maintenant, lorsque vous exécutez ** bndle exec cap production deploy ** dans votre terminal local Le déploiement automatique s'est déroulé en toute sécurité.

Recommended Posts

[Erreur] Concernant rbenv: ruby 2.5.1 n'est pas installé ot ~ lors de l'exécution du déploiement automatique
Solution de contournement pour l'erreur Bundler.require lors de l'exécution de ruby avec crontab
[Ruby] Comment utiliser rbenv (la version `x.x.x 'n'est pas installée)
Lorsqu'une erreur se produit même si la validation n'est pas définie
Une erreur se produit lorsque codedeploy-agent est installé dans Ubuntu Server 20.04
"tx" n'est pas une erreur liée