从Git部署到生产环境的最佳解决方案是什么?

8

我和我的联合创始人正在为我们的创业公司设置服务器。我们使用git进行源代码控制,项目是django,通过fcgi在Ubuntu上运行,并由nginx支持。由于我们只是开始,为了使我们两个人的部署变得容易,我计划在服务器上放置一个简单的部署脚本,它将自动从git中拉取最新的代码更改,然后进行部署。

我知道我可以手动编写一个Bash或Python脚本来完成这个任务,但我希望首先了解是否有其他相对易于使用的软件解决方案可以使用。在这个阶段,我们对持续部署还没有太大兴趣,但我认为在这个领域可能会有一些有用的软件包。

2个回答

7
有几个选项:
  1. 在服务器上托管git仓库,自动检出最新版本。 这里有更多信息,也可以查看这个分离的git树解决方案

  2. 使用像fabricrsync等工具。

通常我会有一个内联git仓库,并设置post-update钩子以针对特定分支(通常是“live”)进行配置。然后,在我的笔记本电脑上运行git remote add -t live live ssh://...,并使用git push live进行推送。您还需要一些东西来重新启动Django服务器,以使新代码生效(可以在钩子内部或通过ssh/fabric进行操作)。
对于未来的项目,我正在尝试使用分离的git树(似乎更优雅),并与fabric结合使用。

我几个小时前正在阅读有关面料的内容。我明天会仔细看一下。谢谢。 - Geuis
“detached git tree” 解决方案似乎非常有趣!感谢提示。 - aurora

-3

执行 git archive <release-branch> | tar -x -C /path/to/live/site 真的需要使用工具吗?


1
尽管有些讥讽的语气,还是感谢提供这些信息。我主要是前端开发人员,在系统管理方面只有一定的技能水平,所以我需要很快地整合这些东西。 - Geuis
2
抱歉,我并没有恶意讽刺;只是深夜的时候没有注意措辞。 :) - Amber
这个解决方案如何处理从您的代码中删除的文件?或者移动的文件? - Tony Topper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接