目前我有一堆git repos用于我想要部署的django网站,repos'采取以下形式:
sn-static
sn-django
sn-templates
[etc]
然后我有一个 super repos,它将每个存储为子模块。在部署方面,我想尝试保持相当简单,它是一种有效的方法:
ln -s /path/to/super-repos/sn-static /home/site/media/
如果没有大量的技术知识,我不确定符号链接在速度或稳定性方面是否会产生任何影响。我也想知道我是否可以将此作为一种部署方法,而不是使用像Capistrano这样的东西(我还没有经验)。
答案 0 :(得分:2)
您应该考虑使用pip
和virtualenv
一起安装软件包,尤其是当pip可以从git存储库中选择directly install certain branches or tags时。
这样,您可以使用一个需求文件来处理所有依赖项,您自己的包和其他人的应用程序。 (总体情况见this post。)
为了处理你的静态媒体,我更喜欢使用Django的内置staticfiles app而不是符号链接几个dirs,因为它看起来更干净,更容易管理。
答案 1 :(得分:-1)
当您到达代码中的发布点时,请对其进行标记(Git Tag)。在您的服务器上,克隆主分支一次,然后只需在每次发布时拉出所需的发布标记。
git pull [tag]