적어도 그것은 카피 스트라 노가 실패한 것처럼 보입니다. 배포를 통해 끝까지 만듭니다. 여기 출력됩니다.배포시에 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
앱에서 카피 스트라 노를 사용한다 (2.12.0) 카피 스트라 노-EXT (1.2.1) 분명히 단지 관련 보이는 넣어 노력하고 더 보석이있다, 더 많은 정보가 될 경우 알려 주시기 바랍니다 도움이됩니다. 여기
가 deploy.rbrequire "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
및
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]
내가 직접 만드는 staging.rb 인 '현재'의 배포 디렉토리에서 '공유'와 '릴리스'폴더와 적절한 사용자 : 그룹을 지정하십시오. 원래 dirs에 대한 사용 권한 문제를 얻고 있었지만이를 정리했습니다. 여기서 약간의 손실을 입었습니다. 솔루션을 많이 찾는 것은 아직까지는 아무 것도 모릅니다. 여기에 어떤 제안이나 경험을 많이 주시면 감사하겠습니다!
테스트 중 cap staging deploy
나는 동시에 생산을 시도 할 것이라고 생각했는데 ... cap production deploy
동시에 베일을 벗기십시오. 일관성에 대해 뭔가 영리합니다.
해결 방법을 직접 찾으면 여기에 답변으로 게시하고 동의 할 수 있습니다. – ZelluX