i error while deploying app vps capistrano. cap deploy:setup, , cap deploy:check executes without error!
when try cap deploy:cold or cap deploy, this
[deploy:update_code] rolling * executing [#<capistrano::command::tree::elsebranch:0x0000010141e798 @condition="else", @command="rm -rf /home/yasinishyn/apps/mkv/releases/20130505214957; true", @callback=#<proc:0x0000010140f6a8@/usr/local/rvm/gems/ruby-2.0.0-p0/gems/capistrano-2.15.3/lib/capistrano/configuration/actions/invocation.rb:13>, @options={}, @skip=false>] servers: ["xxx.xxx.xxx.xxx"] [xxx.xxx.xxx.xxx] executing command command finished in 225ms failed: "sh -c 'cat /home/yasinishyn/apps/mkv/current/revision'" on xxx.xxx.xxx.xxx how debug this? in error? means "failed: "sh -c 'cat /home/yasinishyn/apps/mkv/current/revision'" on 198.211.125.183"?
deploy.rb:
require "bundler/capistrano" server "xxx.xxx.xxx.xxx", :web, :app, :db, primary: true set :application, "app" set :user, "user" set :deploy_to, "/home/#{user}/apps/#{application}" set :deploy_via, :remote_cache set :use_sudo, false set :shared_children, shared_children + %w{public/uploads} set :scm, "git" set :repository, "git@github.com:git_user/#{application}.git" set :branch, "master" default_run_options[:pty] = true ssh_options[:forward_agent] = true after "deploy", "deploy:cleanup" # keep last 5 releases namespace :deploy namespace :assets task :precompile, :roles => :web = source.next_revision(current_revision) if 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 no asset changes" end end task :symlink, roles: :web 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 %w[start stop restart].each |command| desc "#{command} unicorn server" task command, roles: :app, except: {no_release: true} run "/etc/init.d/unicorn_#{application} #{command}" end end task :setup_config, roles: :app sudo "ln -nfs #{current_path}/config/nginx.conf /etc/nginx/sites-enabled/#{application}" sudo "ln -nfs #{current_path}/config/unicorn_init.sh /etc/init.d/unicorn_#{application}" run "mkdir -p #{shared_path}/config" put file.read("config/database.example.yml"), "#{shared_path}/config/database.yml" puts "now edit config files in #{shared_path}." end after "deploy:setup", "deploy:setup_config" task :symlink_config, roles: :app run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml" end after "deploy:finalize_update", "deploy:symlink_config" desc "make sure local git in sync remote." task :check_revision, roles: :web unless `git rev-parse head` == `git rev-parse origin/master` puts "warning: head not same origin/master" puts "run `git push` sync changes." exit end end before "deploy", "deploy:check_revision" #rake seed task desc "seed database on deployed code" task :seed, :only => {:primary => true}, :except => { :no_release => true } run "cd #{current_path}; rails_env=#{rails_env} bundle exec rake db:seed" end desc "seed database on deployed code" task :drop, :only => {:primary => true}, :except => { :no_release => true } run "cd #{current_path}; rails_env=#{rails_env} bundle exec rake db:drop:all" run "cd #{current_path}; rails_env=#{rails_env} bundle exec rake db:create:all" run "cd #{current_path}; rails_env=#{rails_env} bundle exec rake db:migrate" end end
i find answer own
first delete snippet deploy.rb
namespace :assets task :precompile, :roles => :web = source.next_revision(current_revision) if 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 no asset changes" end end task :symlink, roles: :web 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 then delete load 'deploy/assets' capfile, , run
cap deploy:cold this work without error, on initial deploy. usual "sudo service nginx restart" on server, , add deleter earlier snippets.
finally may have error:
actionview::template::error (file import not found or unreadable: bootstrap. load path: /home/yasinishyn/apps/mkv/releases/20130506160725 (in /home/yasinishyn/apps/mkv/releases/20130506160725/app/assets/stylesheets/bootstrap_and_overrides.css.scss)): if don't , change in assets, example add space top of application.css. git add ., git commit .... , git push, , after rerun
cap deploy and bamm!! works :)
Comments
Post a Comment