Ошибка развертывания Rails 6 Mina при прекомпиляции - PullRequest
0 голосов
/ 05 августа 2020

Я использую сервер Debian 10 (Buster) для моего приложения Rails 6.0.3, Ruby 2.6.3, Mina 1.2.3. Когда я запускаю Mina deploy, он выдает ошибку, но не дает мне достаточно, чтобы понять, что мне нужно сделать для решения проблемы.

Вывод Mina Deploy

Precompiling asset files
       $ RAILS_ENV="production" bundle exec rake assets:precompile
       Traceback (most recent call last):
        3: from /var/www/site/tmp/build-15965768145748/vendor/bundle/ruby/2.6.0/bin/ruby_executable_hooks:24:in `<main>'
        2: from /var/www/site/tmp/build-15965768145748/vendor/bundle/ruby/2.6.0/bin/ruby_executable_hooks:24:in `eval'
        1: from /usr/local/rvm/gems/ruby-2.6.3/bin/rake:23:in `<main>'
       /usr/local/rvm/gems/ruby-2.6.3/bin/rake:23:in `load': cannot load such file -- /usr/local/rvm/rubies/ruby-2.6.3/lib/ruby/gems/2.6.0/specifications/default/exe/rake (LoadError)
 !     ERROR: Deploy failed.

Deploy.rb

require 'mina/bundler'
require 'mina/rails'
require 'mina/git'
require 'mina/rvm'

set :application_name, 'site'
set :domain, 'server'
set :user, 'deployer'
set :deploy_to, "/var/www/site"
set :repository, "git@github.com:git.git"
set :branch, 'master'
set :rvm_use_path, '/etc/profile.d/rvm.sh'

set :shared_files, fetch(:shared_files, []).push('config/database.yml', 'config/secrets.yml')

task :remote_environment do
   ruby_version = File.read('.ruby-version').strip
   raise "Couldn't determine Ruby version: Do you have a file .ruby-version in your project root?" if ruby_version.empty?

   invoke :'rvm:use', 'ruby-2.6.3'
end

desc "Deploys the current version to the server."
task :deploy do
   deploy do
     invoke :'git:clone'
     invoke :'deploy:link_shared_paths'
     invoke :'bundle:install'
     invoke :'rails:db_migrate'
     invoke :'rails:assets_precompile'
     invoke :'deploy:cleanup'
     on :launch do
     end
   end
end

namespace :passenger do
desc "Restart Passenger"
   task :restart do
     queue %{
       echo "-----> Restarting passenger"
       cd #{deploy_to}/current
       #{echo_cmd %[mkdir -p tmp]}
       #{echo_cmd %[touch tmp/restart.txt]}
     }
   end
end

Я убедился, что пряжа установлена ​​и работает на моей производственной машине. Когда я запускаю прекомпиляцию на производственной машине, она проходит успешно. Но по-прежнему ошибки в Mina Deploy без изменения текста ошибки. Я просмотрел эту статью При этом я закомментировал предложенный фрагмент кода просто для проверки, но это ничего не изменило. Глядя на мой bashr c, я не вижу никаких фрагментов с EXPORT или SOURCE в начале.

EDIT: когда я запускаю прекомпиляцию на стороне сервера, каждая новая папка развертывания кажется такой даст мне этот вопрос.

...