2012-11-02 42 views
1

我總是通過SSH手動登錄並運行git pull origin master,運行遷移和預編譯資產,部署我的應用程序。從手動拉服務器到Capistrano

現在,我開始更感興趣Capistrano的,所以我給它一個嘗試,我建立與資源庫指向的github和deploy_to/home/myusername/apps/greatapp

服務器上的當前應用配方已經使用Git掛鉤所以我不知道爲什麼我不得不在配方中再次指定github url,但我跑cap deploy這是成功的。

這些更改並不適用,因此出於好奇,我瀏覽了服務器上的應用程序文件夾,發現Capistrano創建了文件夾:sharedreleasescurrent。後者包含應用程序,所以現在我有兩個副本/home/myusername/apps/greatapp和另一個/home/myusername/apps/greatapp/current

  1. 這是怎麼回事?我必須將用戶上傳遷移到current並銷燬舊應用程序?

  2. 請問Capistrano在我的本地主機上拉回購,然後通過SSH上傳或在服務器上運行pull?換句話說,有人可以概述部署的工作原理嗎?

  3. 卡皮斯特拉諾運行precompile:assets

回答

0

/releases /是針對以前的版本,因爲您希望執行cap:rollback。 /current /正如您正確指出的那樣,是針對當前版本的應用。 /shared /用於您希望在部署之間保留的文件和文件夾,它們通常作爲您的配方的一部分符號鏈接到/ current /文件夾。

Capistrano在一個shell中連接到您的服務器,然後在服務器上執行git命令。

0
  1. Capistrano的應自動放public/system任何東西(軌道約定存儲用戶上傳的文件)複製到共享目錄下,並設置必要的符號鏈接。
  2. 如果你放入github url,它實際上是從你的github回購中提取的。閱讀https://help.github.com/articles/deploying-with-capistrano瞭解更多信息。
  3. 它的確默認。