1
저는 capistrano로 배포하려고하는 프로젝트가 있습니다. PHP 다. 그래서 우리는 유치원을 사용하고있다. 문제는 소스 코드가 결코 체크 아웃되지 않고 서버에 저장된다는 것입니다. 다음은 배포 결과입니다.Capistrano 배치는 파일을 복사 할 수 없습니다.
executing locally: "git ls-remote [email protected]:repo/app-widget.git master"
command finished in 3403ms
* executing "git clone -q [email protected]:repo/app-widget.git /u/apps/app/releases/20130603130402 && cd /u/apps/app/releases/20130603130402 && git checkout -q -b deploy b86a5c027b1b2a245aa90e18ccd0211fa72e3466 && (echo b86a5c027b1b2a245aa90e18ccd0211fa72e3466 > /u/apps/app/releases/20130603130402/REVISION)"
servers: ["1.2.3.4 "]
[1.2.3.4 ] executing command
command finished in 1820ms
<snip>
* executing "ln -nfs /u/apps/app/shared/application/commons/app/logs /u/apps/app/releases/20130603130402/application/commons/app/logs"
servers: ["1.2.3.4 "]
[1.2.3.4 ] executing command
*** [err :: 1.2.3.4] ln:
*** [err :: 1.2.3.4] failed to create symbolic link `/u/apps/app/releases/20130603130402/application/commons/app/logs'
*** [err :: 1.2.3.4] : No such file or directory
서버를 검사했는데/u/apps/app/releases에는 아무것도 없습니다. 작업이 실행되는 ubuntu
사용자가 릴리스 디렉토리를 소유하고 있음을 확인했습니다. 또한 ubuntu
사용자가 저장소에 액세스하고 코드를 복제 할 수 있는지 확인했습니다. 내가 서버에 ssh 할 때 명령은 정상적으로 실행된다. 내가 뭘 놓치고 있니?
여기 내 deploy.rb 관련 부분 :
set :ssh_options, { :forward_agent => false }
set :use_sudo, false
set :user, 'ubuntu'
set :scm, :git
set :repository, "[email protected]:repo/app-widget.git"
set :branch, fetch(:version, `git tag`.split("\n").last)
set :model_manager, "doctrine"
set :keep_releases, 2
#set :deploy_via, :remote_cache
set :webserver_user, "www-data"
set :permission_method, :acl
set :use_set_permissions, false
set :interactive_mode, true
logger.level = Logger::MAX_LEVEL
task :testing do
set :user, "ubuntu"
set :domain, "1.2.3.4"
role :app, domain
role :web, domain
role :db, domain, :primary => true
set :env, "test"
end