[RAILS] [Fehler] In Bezug auf rbenv: Ruby 2.5.1 ist nicht installiert, wenn die automatische Bereitstellung ausgeführt wird

Einführung

Dieser Beitrag war süchtig nach einem Fehler, als ich eine automatische Bereitstellung ausführte, also werde ich ihn teilen.

Fehlerinhalt

[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

Machen Sie eine Hypothese

1. require "capistrano/scm/git" Es wird angenommen, dass es eine Abnormalität in Capfile aus der Beschreibung von require ~ gibt.

2. WARN rbenv: ruby 2.5.1 is not installed〜 Aus der Beschreibung, dass Ruby 2.5.1 nicht installiert ist, geht hervor, dass Ruby 2.5.1 nicht installiert ist und dass es einen Unterschied zwischen Ver und der lokalen Umgebung gibt. Ist es verdächtig, deploy.rb ...?

Temporäre Verifizierungs-Capfile

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 }

Keine besondere Anomalie.

Temporäre Überprüfung ver Bestätigung

Ich habe ** ruby -v ** in der lokalen Entwicklungsumgebung und der Produktionsumgebung (EC2) ausgeführt, aber es gibt kein Problem.

Temporäre Überprüfung deploy.rb

deploy.rb


# config valid only for current version of Capistrano
#Beschrieb die Version von Capistrano. Verwenden Sie weiterhin die feste Version und vermeiden Sie Probleme aufgrund von Versionsänderungen
lock '3.14.1'

#Wird zum Anzeigen von Capistrano-Protokollen verwendet
set :application, 'chat-space'

#Geben Sie an, aus welchem Repository die App abgerufen werden soll
set :repo_url,  '[email protected]:ken-sasaki-222/chat-space.git'

#Geben Sie ein Verzeichnis an, auf das häufig verwiesen wird, auch wenn sich die Version ändert
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' #Achten Sie hier

#Welcher öffentliche Schlüssel für die Bereitstellung verwendet werden soll
set :ssh_options, auth_methods: ['publickey'],
                  keys: ['~/.ssh/test_key.pem'] 

#Speicherort der Datei mit der Prozessnummer
set :unicorn_pid, -> { "#{shared_path}/tmp/pids/unicorn.pid" }

#Speicherort der Unicorn-Konfigurationsdatei
set :unicorn_config_path, -> { "#{current_path}/config/unicorn.rb" }
set :keep_releases, 5

#Beschreibung für den Neustart von Unicorn nach Abschluss des Bereitstellungsprozesses
after 'deploy:publishing', 'deploy:restart'
namespace :deploy do
  task :restart do
    invoke 'unicorn:restart'
  end
end

Es scheint kein Problem mit Ruby Ver zu geben. Ich denke ... Der von ver angegebene Teil ist ** 'ruby 2.5.1' **!

Richtig, '2.5.1' ist OK! Wenn Sie es beheben.

deploy.rb


#Kürzung

set :rbenv_type, :user
set :rbenv_ruby, '2.5.1' #Achten Sie hier

#Kürzung

Wenn Sie jetzt ** bndle exec cap Production Deployment ** in Ihrem lokalen Terminal ausführen Die automatische Bereitstellung lief sicher.

Recommended Posts

[Fehler] In Bezug auf rbenv: Ruby 2.5.1 ist nicht installiert, wenn die automatische Bereitstellung ausgeführt wird
Problemumgehung für Bundler.require-Fehler beim Ausführen von Ruby mit crontab
[Ruby] Verwendung von rbenv (Version `x.x.x' ist nicht installiert)
Wenn ein Fehler auftritt, obwohl die Validierung nicht festgelegt ist
Ein Fehler tritt auf, wenn codedeploy-agent in Ubuntu Server 20.04 installiert ist
"tx" ist kein gebundener Fehler