2013-11-06 2 views
0

Я запускаю приложение rails с помощью JRuby 1.7.4 (1.9.3p392) с Torquebox и пытаюсь установить его в Digital VPS, когда запускаю «развертывание крышки», все работает отлично однако, когда я пытаюсь идти, чтобы посетить сайт я все еще вижу «502 Bad Gateway Nginx/1.1.19Рельсы развертывания с использованием capistrano & torquebox error 502

Это мой deploy.rb файл

`require 'torquebox-capistrano-support' 
    require 'bundler/capistrano' 



    # SCM 
    # Update this part to match your server and location of your application code. 
    server  "000.000.00.000", :web, :app, :primary => true 
    set :repository, '[email protected]:jrgrammont/EmployToy.git' 
    set :branch,   "master" 
    set :ssh_options, { :forward_agent => true } 
    set :user,    "torquebox" 
    set :scm,    :git 
    set :scm_verbose,  true 
    set :use_sudo,   false 

    set :deploy_to, '/opt/apps/employtoy.com' 
    set :torquebox_home, "/opt/torquebox/current" 
    set :jboss_init_script, "/etc/init.d/jboss-as-standalone" 
    set :rails_env, 'development' 
    set :app_context,  "/" 
    set :app_ruby_version, '1.9' 
    set :application, 'employtoy.com' 

    default_environment['JRUBY_OPTS'] = '--1.9' 
    default_environment['PATH'] =   '/opt/torquebox/current/jboss/bin:/opt/torquebox/current/jruby/bin:/usr/lib64/qt- 3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/root/bin' 

    after 'deploy:update_code', 'deploy:assets:precompile' 
    after 'deploy:update', 'deploy:resymlink', 'deploy:nginx' 
    before 'deploy:finalize_update', 'deploy:assets:symlink' 

    default_run_options[:pty] = true # Must be set for the password prompt from git to work 
    set :deploy_via, :remote_cache 


    namespace :deploy do 
     desc "relink db directory" 
     #if you use sqlite 
     task :resymlink, :roles => :app do 
     run "mkdir -p #{shared_path}/db; rm -rf #{current_path}/db && ln -s # {shared_path}/db #{current_path}/db && chown -R torquebox:torquebox #{current_path}/db" 
     end 


    # This is a weird part. I've found that asset complation with JRuby can really hog up the memory, which can cause the application to crash 
    # when doing a deploy. So, I like to compile the assets locally and SCP them to the server instead. 
    # Just make sure you've commented out the load deploy/assets in your Capfile. 
    namespace :assets do 
    # If you want to force the compilation of assets, just set the ENV['COMPILE_ASSETS'] 
     task :precompile, :roles => :web do 
     force_compile = ENV['COMPILE_ASSETS'] 
     begin # on first deploys, there is no current_revision so an error gets raised. in this case we want to just compile assets and upload them. 
     from = source.next_revision(current_revision) 
     rescue 
     force_compile = true 
     end 
     if (force_compile) or (capture("cd #{latest_release} && #{source.local.log(from)} vendor/assets/ lib/assets/ app/assets/ | wc -l").to_i > 0) 
     run_locally("rake assets:clean && rake assets:precompile") 
     run_locally "cd public && tar -jcf assets.tar.bz2 assets" 
     top.upload "public/assets.tar.bz2", "#{shared_path}", :via => :scp 
     run "cd #{shared_path} && tar -jxf assets.tar.bz2 && rm assets.tar.bz2" 
     run_locally "rm public/assets.tar.bz2" 
     run_locally("rake assets:clean") 
    else 
     logger.info "Skipping asset precompilation because there were no asset changes" 
     end 
    end 

     task :symlink, roles: :web do 
     run ("rm -rf #{latest_release}/public/assets && 
      mkdir -p #{latest_release}/public && 
      mkdir -p #{shared_path}/assets && 
      ln -s #{shared_path}/assets #{latest_release}/public/assets") 
     end 



     end 
    end 

ответ

0

Я просто побежал учебник снова ... не совсем уверен, но похоже, что Capistrano не запускает Torquebox.

Попробуйте ssh'ing i в коробку и запустив ее с помощью: sudo service jboss-as-standalone start

также посмотрите на журнал крутящего момента на /var/log/jboss-as/console.log .. это то, что выбрасывает ошибки?

+0

Спасибо за помощь, я ценю это! – Jerry

+0

Спасибо за помощь, я ценю это! После того, как ssh'ing на мой сервер и запустил то, что вы предложили, страница nginx исчезла, однако теперь отображается следующее сообщение: HTTP status 500 javax.servlet.ServletException: org.jruby.exceptions.RaiseException: (InjectionError) Неверный впрыск - менеджер \t org.torquebox.web.servlet.RackFilter.doRack (RackFilter.java:117) \t org.torquebox.web.servlet.RackFilter.doFilter (RackFilter.java:101) \t org.torquebox.web.servlet .RackFilter.doFilter (RackFilter.java:72) \t org.torquebox.web.servlet.SendfileFilter.doFilter (SendfileFilter.java:49) – Jerry

+0

Привет, Ха ... ну так много для "легких развертывания", которые были обещал ... Да, JRuby, Torquebox и Neo4j.rb у всех были обновления, так как я написал это сообщение в блоге. Я обновил рецепт шеф-повара https://github.com/cfitz/neo4j-torquebox-kitchen. Я также обновил файл gem демо-приложения (https://github.com/cfitz/neo4j-demo-app/blob/master/Gemfile) и Gemfile.lock, чтобы заблокировать все до правильных версий gem. И при первом развертывании вам нужно будет запустить «сервис jboss-as-standalone restart» (или запустить, если он не запущен) как root, по какой-то причине ... Это работает? – fitz