【发布时间】:2018-02-15 04:22:32
【问题描述】:
部署到服务器的正确方法是什么?
git 拉
在工作目录(/var/www/myproject)中
或
git --work-tree=/var/www/myproject --git-dir=/srv/git/myproject.git checkout -f
两者都需要在裸仓库中添加一个接收后挂钩。我对两者都进行了测试,它们都可以,但是最佳实践是什么?
【问题讨论】:
标签: git deployment live
部署到服务器的正确方法是什么?
git 拉
在工作目录(/var/www/myproject)中
或
git --work-tree=/var/www/myproject --git-dir=/srv/git/myproject.git checkout -f
两者都需要在裸仓库中添加一个接收后挂钩。我对两者都进行了测试,它们都可以,但是最佳实践是什么?
【问题讨论】:
标签: git deployment live
您不应该在服务器中使用 git repo 来触发构建。您应该分离存储库和部署服务器。
最好的方法是使用 post-receive (push) hook 来触发 CI 服务器的构建。然后 CI 可以打包整个服务器代码并更改配置,然后复制到目标服务器,停止旧服务器,进行一些升级并启动新服务器。
好处是你可以使用符号链接来切换新旧代码,以减少复制时的不一致。
您可以使用 Jenkins、GoCD、TeamCity 等作为 CI 服务器。
【讨论】: