2010-01-03 79 views
1

我有一個奇怪的問題。我做了部署,然後剛剛上傳的dir被清理任務刪除。我在一個月內沒有部署到這個站點,但我沒有更改部署配方。有任何想法嗎?Capistrano正在刪除最新的部署

這是輸出。 http://gist.github.com/267850

+0

你能給我們輸出Capistrano給你嗎? – Garrett 2010-01-03 00:19:11

+0

以上輸出。 – kjs3 2010-01-03 06:18:44

回答

1

有什麼東西在這一步突破:

** keeping 5 of 9 deployed releases 
    * executing "rm -rf /home/user/public_html/mysite/releases/20100103015806 /home/user/public_html/mysite/releases/20100103000220 /home/user/public_html/mysite/releases/20100103000202 /home/user/public_html/mysite/releases/20100102234212" 

因爲20100103015806目前正在部署的釋放。我會建議關閉在你的config/deploy.rb文件

set :keep_releases, 5 

代碼,直到問題得到全面的調試

+0

我實際上在我的部署文件中沒有「set:keep_releases」。我只是打電話給我認爲有5作爲默認的清理任務。我嘗試過:在配方中保留髮布,但它似乎沒有效果。 – kjs3 2010-01-04 00:29:23

+1

啊,好的。如果您刪除清理任務,這可能會有所幫助。通過lib/capistrano/recipes/deploy.rb(具有清理源代碼)進行讀取可能有助於調試問題。請在您的服務器上嘗試'ls -xt#{releases_path}',看看訂單是否有問題。也許你的服務器的.profile或者其他東西正在改變ls的默認順序,所以它不是capistrano預期的順序。 – 2010-01-04 21:56:11

0

在我看來,這行是罪魁禍首:

* executing "ln -nfs /home/user/public_html/mysite/shared/content_images /home/user/public_html/mysite/current/public/content_images" 

最近你用這條線染了嗎?對shared/content_images目錄或其權限所做的任何更改?看來目錄不見了。

+0

這是因爲mysite/current的目標已被刪除,所以mysite/current/public/content_images無法找到。即 ln -s/home/user/public_html/mysite/releases/20100103015806/home/user/public_html/mysite/current ... rm -rf/home/user/public_html/mysite/releases/20100103015806 .. 。 ln -nfs/home/user/public_html/mysite/shared/content_images/home/user/public_html/mysite/current/public/content_images **失敗 – 2010-01-03 21:41:14

+0

John Douthat是對的。這只是我在配方中的另一項任務。如果我放棄它,它沒有什麼區別,但如果我忽略清理任務,一切都很好。 – kjs3 2010-01-04 00:31:15

2

這是2.5.11中的一個問題(我擔心出現錯誤) - 在2.5.12中糾正 - 如果您有興趣參加討論,請參閱capistrano.lighthouseapp.com。