2011-05-16 137 views
3

目前我有一大堆的git回購了Django的網站我正在尋找部署中,回購的形式是:使用Git部署

sn-static 
sn-django 
sn-templates 
[etc] 

然後我有一個超級回購存儲各這些作爲子模塊。在部署方面,我想嘗試讓事情變得非常簡單,這將是一個有效的方法:

  • 克隆從超級回購因此&在一個地方各回購穩定克隆一個穩定的標籤。
  • 由於名稱是sn- *,我會查看符號鏈接以獲得更友好的結構,例如ln -s /path/to/super-repos/sn-static /home/site/media/
  • 然後我nginx的Web服務器(在靜態內容的情況下,至少)可以簡單地指到/ home /網站/媒介

沒有技術知識很大我不確定如果將符號鏈接有任何影響,就速度或穩定性而言。我也想知道,如果我可以擺脫這種部署方式,而不是使用像Capistrano這樣的東西(至今我還沒有經驗)。

回答

2

您應該考慮的一個選項是使用pipvirtualenv一起安裝包,特別是pip可以從git存儲庫中選擇directly install certain branches or tags。 通過這種方式,您可以使用一個需求文件來處理您的所有依賴項,您自己的軟件包和其他人的應用程序。 (請參閱this post的大圖。)

爲了處理您的靜態媒體,我寧願使用Django的內置staticfiles app而不是幾個字符串,因爲它看起來更清晰和更易於管理。

-1

當您到達代碼中的發佈點時,標記它(Git Tag)。在你的服務器上,克隆主分支一次,然後簡單地拉你想要的發佈標籤,每次你發佈一個版本。

git pull [tag]