2011-05-16 101 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]