2015-05-18 2 views
0

Im пытается развернуть мое приложение на сервере с помощью capistrano. У меня есть nodejs, установленный на моем сервере, и он работает. Но когда я бегу cap production deploy я получаю следующее сообщение об ошибке:При попытке развернуть приложение rails с Capistrano я всегда получаю ExecJS :: RuntimeError, даже если установлен nodejs

[6c68298e] Command: cd /home/deploy/myapp/releases/20150518162617 && (RBENV_ROOT=~/.rbenv RBENV_VERSION=2.2.2 RAILS_ENV=production ~/.rbenv/bin/rbenv exec bundle exec rake assets:precompile) 
DEBUG [6c68298e] rake aborted! 
DEBUG [6c68298e] ExecJS::RuntimeError: 
DEBUG [6c68298e]  (in /home/deploy/myapp/releases/20150518162617/app/assets/javascripts/application.js) 
DEBUG [6c68298e] (execjs):1 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/execjs-2.4.0/lib/execjs/external_runtime.rb:207:in `exec_runtime' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/execjs-2.4.0/lib/execjs/external_runtime.rb:32:in `exec' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/execjs-2.4.0/lib/execjs/external_runtime.rb:21:in `eval' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/execjs-2.4.0/lib/execjs/external_runtime.rb:39:in `call' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/uglifier-2.7.1/lib/uglifier.rb:212:in `run_uglifyjs' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/uglifier-2.7.1/lib/uglifier.rb:179:in `compile' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/uglifier_compressor.rb:25:in `evaluate' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/context.rb:197:in `block in evaluate' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/context.rb:194:in `each' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/context.rb:194:in `evaluate' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/bundled_asset.rb:25:in `initialize' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/base.rb:377:in `new' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/base.rb:377:in `build_asset' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/index.rb:94:in `block in build_asset' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/caching.rb:58:in `cache_asset' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/index.rb:93:in `build_asset' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/base.rb:287:in `find_asset' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/index.rb:61:in `find_asset' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:211:in `block in find_asset' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:257:in `benchmark' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:210:in `find_asset' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:119:in `block in compile' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:118:in `each' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:118:in `compile' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-rails-2.2.4/lib/sprockets/rails/task.rb:70:in `block (3 levels) in define' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/rake/sprocketstask.rb:146:in `with_logger' 
DEBUG [6c68298e] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-rails-2.2.4/lib/sprockets/rails/task.rb:69:in `block (2 levels) in define' 
DEBUG [6c68298e] Tasks: TOP => assets:precompile 
DEBUG [6c68298e] (See full trace by running task with --trace) 
(Backtrace restricted to imported tasks) 
cap aborted! 
SSHKit::Runner::ExecuteError: Exception while executing as [email protected]: rake exit status: 1 
rake stdout: Nothing written 
rake stderr: rake aborted! 
ExecJS::RuntimeError: 
    (in /home/deploy/myapp/releases/20150518162617/app/assets/javascripts/application.js) 
(execjs):1 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/execjs-2.4.0/lib/execjs/external_runtime.rb:207:in `exec_runtime' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/execjs-2.4.0/lib/execjs/external_runtime.rb:32:in `exec' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/execjs-2.4.0/lib/execjs/external_runtime.rb:21:in `eval' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/execjs-2.4.0/lib/execjs/external_runtime.rb:39:in `call' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/uglifier-2.7.1/lib/uglifier.rb:212:in `run_uglifyjs' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/uglifier-2.7.1/lib/uglifier.rb:179:in `compile' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/uglifier_compressor.rb:25:in `evaluate' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/context.rb:197:in `block in evaluate' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/context.rb:194:in `each' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/context.rb:194:in `evaluate' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/bundled_asset.rb:25:in `initialize' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/base.rb:377:in `new' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/base.rb:377:in `build_asset' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/index.rb:94:in `block in build_asset' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/caching.rb:58:in `cache_asset' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/index.rb:93:in `build_asset' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/base.rb:287:in `find_asset' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/index.rb:61:in `find_asset' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:211:in `block in find_asset' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:257:in `benchmark' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:210:in `find_asset' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:119:in `block in compile' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:118:in `each' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:118:in `compile' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-rails-2.2.4/lib/sprockets/rails/task.rb:70:in `block (3 levels) in define' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-2.12.3/lib/rake/sprocketstask.rb:146:in `with_logger' 
/home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/sprockets-rails-2.2.4/lib/sprockets/rails/task.rb:69:in `block (2 levels) in define' 
Tasks: TOP => assets:precompile 
(See full trace by running task with --trace) 

Затем я попытался установить therubyracer камень. Это дало мне новую ошибку:

DEBUG [162e60db] Command: cd /home/deploy/myapp/releases/20150518163910 && (RBENV_ROOT=~/.rbenv RBENV_VERSION=2.2.2 RAILS_ENV=production ~/.rbenv/bin/rbenv exec bundle exec rake assets:precompile) 
DEBUG [162e60db] /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/therubyracer-0.12.2/lib/v8/function.rb:13: [BUG] 
DEBUG [162e60db] Segmentation fault at 0x000b4dd50076c1 
DEBUG [162e60db] ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux] 
DEBUG [162e60db]  
DEBUG [162e60db] bash: line 1: 1381 Killed     (RBENV_ROOT=~/.rbenv RBENV_VERSION=2.2.2 RAILS_ENV=production ~/.rbenv/bin/rbenv exec bundle exec rake assets:precompile) 
(Backtrace restricted to imported tasks) 
cap aborted! 
SSHKit::Runner::ExecuteError: Exception while executing as [email protected]: rake exit status: 137 
rake stdout: Nothing written 
rake stderr: /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/therubyracer-0.12.2/lib/v8/function.rb:13: [BUG] Segmentation fault at 0x000b4dd50076c1 
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux] 

bash: line 1: 1381 Killed     (RBENV_ROOT=~/.rbenv RBENV_VERSION=2.2.2 RAILS_ENV=production ~/.rbenv/bin/rbenv exec bundle exec rake assets:precompile) 

SSHKit::Command::Failed: rake exit status: 137 
rake stdout: Nothing written 
rake stderr: /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/therubyracer-0.12.2/lib/v8/function.rb:13: [BUG] Segmentation fault at 0x000b4dd50076c1 
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux] 

bash: line 1: 1381 Killed     (RBENV_ROOT=~/.rbenv RBENV_VERSION=2.2.2 RAILS_ENV=production ~/.rbenv/bin/rbenv exec bundle exec rake assets:precompile) 

Tasks: TOP => deploy:assets:precompile 
(See full trace by running task with --trace) 
The deploy has failed with an error: Exception while executing as [email protected]: rake exit status: 137 
rake stdout: Nothing written 
rake stderr: /home/deploy/myapp/shared/bundle/ruby/2.2.0/gems/therubyracer-0.12.2/lib/v8/function.rb:13: [BUG] Segmentation fault at 0x000b4dd50076c1 
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux] 

bash: line 1: 1381 Killed     (RBENV_ROOT=~/.rbenv RBENV_VERSION=2.2.2 RAILS_ENV=production ~/.rbenv/bin/rbenv exec bundle exec rake assets:precompile) 

Я даже попытался переустановить узел и установить другую версию. Но все равно не получилось. Что может быть проблемой? Как я могу это исправить?

+1

добавить 'gem 'therubyracer'' в Gemfile. –

+0

В моем случае решения перезапустили сервер. потому что SWAP был заполнен, и sprocket не смог запустить компиляцию. – ajahongir

+0

У меня была аналогичная проблема при компиляции активов. Я просто перезагружаю свой VPS и запускаю 'sudo apt-get update' и' sudo apt-get upgrade' и, наконец, с моего локального запуска машины 'cap production deploy'. И это работает! –

ответ

2

Проверьте nodejs установлен, если не

sudo apt-get install nodejs 

Если проблема не устранена попробуйте перезагрузить сервер.

Смежные вопросы