2014-12-03 45 views
1

我是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 

什麼是錯的!我如何讓Capistrano更新遠程服務器上my_app文件夾中的文件和內容?非常感謝你的幫助!!!

+1

由於您是Capistrano的新手,您可能不知道它是如何工作的。假設你的應用程序駐留在'/ var/www/my_app'中,有幾個目錄,並且它們中的任何一個都不包含你的項目源。首先是'current',它是'releases/SOME_TIMESTAMP'的符號鏈接。接下來是一個'repo'目錄,其中包含您的裸回購,'發佈'與幾個最後成功或失敗的部署。最後一個是'shared',並且有文件或目錄必須在版本間共享(例如'config/database.yml') – blelump 2014-12-03 18:31:20

+0

非常感謝您的回答。請問你能幫幫我嗎!我應該如何讓我的服務器使用Cpristrano下載的新代碼。或者我怎樣才能將github主分支上的代碼與遠程服務器上的代碼同步?謝謝! – 2014-12-04 17:15:25

+0

你的'deploy.rb'看起來很好。部署是否成功結束?如果是這樣,'current'目錄仍然不包含新的提交? – blelump 2014-12-04 17:22:11

回答

0

解決這個問題很簡單。當您使用Capistrano時,您必須指出您的服務器使用文件夾「當前」。例如,我使用apache乘客服務器與rails應用程序,所以在我的配置文件中,我必須指定路徑DocumentRoot /var/www/my_app/current/public