저는 Capistrano를 처음 사용하고있어서 설정하는 데 도움이 필요합니다. cap deploy
명령을 실행 한 후 오류없이 성공적으로 실행되지만 원격 서버의 내용을 업데이트하지 않으면 일부 파일과 함께 my_app 디렉토리에 추가 폴더를 만들고 current
이라는 폴더를 만들고이 폴더 내에 github의 모든 업데이트를 배치합니다. 여기 내 deploy.rb
파일Capistrano 3은 파일 및 파일의 코드를 업데이트하지 않습니다.
lock '3.3.3'
set :application, 'my_app'
set :repo_url, '[email protected]:me/my_app.git'
set :branch, "master"
set :deploy_via, :remote_cache
set :user, "me"
set :stages, ["production"]
set :use_sudo, false
set :deploy_to, '/var/www/my_app'
namespace :deploy do
after :finishing, 'deploy:cleanup', "deploy:update_code"
after :restart, :clear_cache do
on roles(:web), in: :groups, limit: 3, wait: 10 do
# Here we can do anything such as:
# within release_path do
# execute :rake, 'cache:clear'
# end
end
end
end
무엇이 잘못 되었나요? 어떻게 카피스트라 노가 원격 서버의 my_app 폴더에있는 파일과 파일 내용을 업데이트 할 수 있습니까? 도움 주셔서 대단히 감사합니다 !!!
여러분은 Capistrano를 처음 사용하기 때문에 이것이 어떻게 작동하는지 알지 못할 수도 있습니다. 앱이'/ var/www/my_app'에 있다고 가정하면 몇 개의 디렉토리가 있으며 그 중 하나에는 프로젝트 소스가 들어 있지 않습니다. 첫 번째는'releases/SOME_TIMESTAMP'에 대한 심볼릭 링크 인'current'입니다. 다음은'repo' 디렉토리입니다.이 디렉토리에는 맨 마지막에 성공했거나 실패한 배포본이있는'릴리즈 (release) '라는 내용이 포함되어 있습니다. 마지막 하나는'공유 된 '파일과 디렉토리가 릴리스 사이에서 공유되어야합니다 (예 :'config/database.yml') – blelump
답장을 보내 주셔서 대단히 감사합니다. 제발 도와주세요. 내 서버가 Cristrano가 다운로드 한 새 코드를 사용하도록하려면 어떻게해야합니까? 또는 github master 브랜치의 코드를 원격 서버의 코드와 어떻게 동기화 할 수 있습니까? 고맙습니다! –
당신의'deploy.rb'는 괜찮아 보입니다. 배포가 성공적으로 끝나나요? 그렇다면'current' 디렉토리에는 여전히 새로운 커밋이 포함되어 있지 않습니까? – blelump