2014-05-10 52 views
0

我按照Capistrano上的說明設置了部署配置,並且我現在可以在git中將代碼部署到我的Web服務器。但由於tmp文件夾不在git存儲庫中,Capistrano似乎無法重新啓動我的Ruby-On-Rails應用程序(通過觸摸需要tmp文件夾存在的tmp/restart.txt)。通過Capistrano 3.x部署後Rails應用程序不會自動重新啓動

我該怎麼辦?我應該將tmp文件夾添加到git repo中嗎?或者如果Capistrano不存在,Capistrano是否可以創建該文件夾?

解決方案

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

使用Capistrano的,你可以運行任何你想要的服務器

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

除此之外,你通常把一個.keep文件的目錄中必要的,但你不想跟蹤,否則。所以當你結帳的應用程序,該文件夾在那裏,但「空」。

+0

我使用execute命令創建了tmp文件夾,方法是重新定義deploy:restart task –

相關問題