2014-05-10 3 views
0

을 통해 배포 한 후 Rails 애플리케이션이 자동으로 다시 시작되지 않습니다. Capistrano의 지침에 따라 배포 구성을 설정 했으므로 지금 당장 내 웹 서버에 코드를 배포 할 수 있습니다. 그러나 tmp 폴더가 git 저장소에 없기 때문에 Capistrano는 (tmp 폴더가 존재해야하는 tmp/restart.txt를 만져서) Ruby-On-Rails 응용 프로그램을 다시 시작할 수없는 것 같습니다.Capistrano 3.x

내가해야 할 일? tmp 폴더를 git repo에 추가해야합니까? 또는 존재하지 않는 경우 카피 스트라 노가이 폴더를 만들 수있는 방법이 있습니까?

솔루션 :

카피 스트라 노를 사용하여
Rake::Task["deploy:restart"].clear_actions 
namespace :deploy do 
    task :restart do 
    on roles(:web) do |host| 
     execute "mkdir -p #{fetch(:deploy_to)}/current/tmp" 
     info "create folder #{fetch(:deploy_to)}/current/tmp" 
     execute "touch #{fetch(:deploy_to)}/current/tmp/restart.txt" 
    end 
    end 
end 

답변

1

, 당신은 당신이보다

task :execute_on_server do 
    on "[email protected]" do 
    execute "some_command" 
    end 
end 

다른 서버에서 원하는대로 실행할 수 있습니다, 당신은 일반적으로 디렉토리에 .keep 파일을 넣어 필요하지만 당신은 달리 추적하고 싶지 않다. 그래서 당신이 응용 프로그램을 체크 아웃 할 때 폴더는 "비어 있습니다".

+0

deploy 명령을 다시 정의하여 execute 명령으로 tmp 폴더를 만들었습니다. task –