6

Distribuzione con Capistrano fallire durante le attività rake: precompilare:Rails 4, Capistrano 3 falliscono durante le attività rake exec fascio: precompilare e ritorna rastrello stdout: Niente

/usr/local/rvm/bin/rvm ruby-2.0.0-p353 do bundle exec rake assets:precompile 

rispondono Prompt con questo errore:

INFO [b438501f] Running /usr/local/rvm/bin/rvm ruby-2.0.0-p353 do bundle exec rake assets:precompile on 123.123.123.123 

cap aborted! 
rake stdout: Nothing written 
rake stderr: Nothing written 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/sshkit-1.3.0/lib/sshkit/command.rb:94:in `exit_status=' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:142:in `block (4 levels) in _execute' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/channel.rb:551:in `call' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/channel.rb:551:in `do_request' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:561:in `channel_request' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:465:in `dispatch_incoming_packets' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:221:in `preprocess' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:205:in `process' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:169:in `block in loop' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:169:in `loop' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:169:in `loop' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/channel.rb:269:in `wait' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:164:in `block (2 levels) in _execute' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/channel.rb:514:in `call' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/channel.rb:514:in `do_open_confirmation' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:545:in `channel_open_confirmation' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:465:in `dispatch_incoming_packets' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:221:in `preprocess' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:205:in `process' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:169:in `block in loop' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:169:in `loop' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:169:in `loop' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:166:in `block in _execute' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:123:in `tap' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:123:in `_execute' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:66:in `execute' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/capistrano-rails-1.1.1/lib/capistrano/tasks/assets.rake:59:in `block (6 levels) in <top (required)>' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/sshkit-1.3.0/lib/sshkit/backends/abstract.rb:89:in `with' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/capistrano-rails-1.1.1/lib/capistrano/tasks/assets.rake:58:in `block (5 levels) in <top (required)>' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/sshkit-1.3.0/lib/sshkit/backends/abstract.rb:81:in `within' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/capistrano-rails-1.1.1/lib/capistrano/tasks/assets.rake:57:in `block (4 levels) in <top (required)>' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:54:in `instance_exec' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:54:in `run' 
/Users/osiris/.rvm/gems/ruby-2.0.0-p353/gems/sshkit-1.3.0/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute' 
Tasks: TOP => deploy:assets:precompile 
(See full trace by running task with --trace) 
The deploy has failed with an error: #<SSHKit::Command::Failed: rake stdout: Nothing written 
rake stderr: Nothing written 
> 

Qui il mio debloy.rb

# config valid only for Capistrano 3.1 
lock '3.1.0' 

set :application, 'Myapp' 
set :repo_url, '[email protected]:randomuser/myapp.git' 

set :deploy_to, '/var/www/myapp' 

set :rvm_ruby_version, 'ruby-2.0.0-p353' 

set :log_level, :info 

set :linked_files, %w{config/database.yml} 

set :keep_releases, 20 

# SSHKit.config.output_verbosity = :debug 
SSHKit.config.output = $stdout 
SSHKit.config.output_verbosity = Logger::DEBUG 
SSHKit.config.command_map[:rake] = "bundle exec rake" 
SSHKit.config.command_map[:rails] = "bundle exec rails" 

set :normalize_asset_timestamps, %{public/images public/javascripts public/stylesheets} 

namespace :deploy do 

    desc 'Restart application' 
    task :restart do 
    on roles(:app), in: :sequence, wait: 5 do 

     # Your restart mechanism here, for example: 
     execute :touch, release_path.join('tmp/restart.txt') 
    end 
    end 

    after :publishing, :restart 

    after :restart, :clear_cache do 
    on roles(:web), in: :groups, limit: 3, wait: 10 do 
     # Here we can do anything such as: 
     within release_path do 
     execute :rake, 'cache:clear' 
     end 
    end 
    end 

    after :finishing, "deploy:cleanup" 
end 

È possibile trovare ulteriori dettagli su questo problema in questo Gist: https://gist.github.com/richardsondx/10092890 Ho notato che l'ambiente non è menzionato nel rake task anche se l'ho menzionato in production.rb. Si potrebbe contribuire a sovrascrivere il prefisso il comando con RAILS_ENV = produzione

ho cercato di sovrascrivere il compito di:

namespace :deploy do 

    namespace :assets do 
    task :precompile do 
     on roles(fetch(:assets_roles)) do 
     within release_path do 
      with rails_env: fetch(:rails_env) do 
      execute :rake, "assets:precompile RAILS_ENV=production" 
      end 
     end 
     end 
    end 
    end 
end 

Ma non sovrascriverlo.

+0

prova le risorse precompilate nella tua casella locale, è possibile che tu abbia degli errori nei file sass o coffee/js – fengd

+0

Quale gemma stai usando per la gestione di rvm con Capistrano? Se stai usando 'capistrano-rvm', penso che cambiarlo in' rvm1-capistrano3' dovrebbe aiutare. – BriceB

+0

Ho dovuto risalire la ram del mio VPS a 1G per compilare le risorse. –

risposta