По крайней мере, это похоже на то, что capistrano терпит неудачу. Это делает его полностью через развертывание и в конце. вот результат.Как я могу заставить Capistrano прекратить сбой при развертывании: create_symlink?
* executing `deploy:create_symlink'
* executing "rm -f ~/xxx.xx.xx/test/current && ln -s ~/xxx.xx.xx/test/releases/20120525193307 ~/xxx.xx.xx/test/current"
servers: ["test.xxx.xx.xx"]
["test.xxx.xx.xx"] executing command
** [out :: test.xxx.xx.xx] rm: cannot remove `/var/www/vhosts/xxx.xx.xx/test/current': I command finished in 460ms
*** [deploy:create_symlink] rolling back
*** no previous release to rollback to, rollback of symlink skipped
* executing "rm -rf /var/www/vhosts/xxx.xx.xx/test/releases/20120525195909; true"
servers: ["test.xxx.xx.xx"]
[test.xxx.xx.xx] executing command
command finished in 524ms
failed: "rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell 'default' -c 'rm -f /var/www/vhosts/xxx.xx.xx/test/current && ln -s /var/www/vhosts/xxx.xx.xx/test/releases/20120525195909 /var/www/vhosts/xxx.xx.xx/test/current'" on xxx.xx.xx
приложение использует Capistrano (2.12.0) Capistrano-Ext (1.2.1) очевидно есть больше камней, просто пытаются поставить то, что кажется уместным, пожалуйста, дайте мне знать, если больше информации будет полезно.
Вот deploy.rb
require "rvm/capistrano"
require 'bundler/capistrano'
require 'capistrano/ext/multistage'
set :stages, %w(staging production)
set :default_stage, 'staging'
set :application, 'xxx'
# trying to not use sudo on the deployment
#set :use_sudo, false
#set :copy_exclude, [".git", "spec"]
set :repository, '~/git/xxx.git'
set :local_repository, "~/rorwork/xxx/.git"
set :scm, :git
set :user, 'xxx'
set :group, 'xxxx'
ssh_options[:forward_agent] = true
set :branch, 'master'
set :deploy_via, :remote_cache
set :scm_command, "/usr/local/bin/git"
set :local_scm_command, :default
default_run_options[:pty] = true
set :normalize_asset_timestamps, false #for asset piple
set :dbuser, 'xxx'
set :dbpass, 'xxx'
# if you want to clean up old releases on each deploy uncomment this:
# after "deploy:restart", "deploy:cleanup"
# if you're still using the script/reaper helper you will need
# these http://github.com/rails/irs_process_scripts
# If you are using Passenger mod_rails uncomment this:
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release => true } do
run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
end
end
и staging.rb
set :domain, 'test.xxx.xx.xx'
role :web, domain # Your HTTP server, Apache/etc
role :app, domain # This may be the same as your `Web` server
role :db, domain, :primary => true # This is where Rails migrations will run
set :deploy_to, "/var/www/vhosts/xxx.xx.xx/test"
set :rails_env, 'staging'
set :rack_env, rails_env
set :dbname, "xxx_staging"
#set :bundle_without, [:test, :development, :production]
я вручную создать 'текущие', 'общая' и 'освобождение' папка в директории и развертывания назначьте соответствующую группу пользователей:. первоначально получал проблемы с разрешениями на dirs, но получил это разобрал. вроде бы, в убытке здесь, много поисков решений нет ничего нет. любые предложения или опыт здесь очень ценятся!
в тестировании cap staging deploy
подумал, что я постараюсь на производстве, а также cap production deploy
поручает в то же время ... что-то умное о согласованности.
Если вы нашли решение самостоятельно, вы также можете разместить его здесь в качестве ответа и принять его. – ZelluX