2nd*_*boy 1 git deployment workflow composer-php
对于我们的项目,我们使用Git来编写代码和Composer来处理依赖项.这工作得很好,但是为了更新或添加依赖项,我还没有找到一个好的工作流程.
让我们假设,我们想要添加功能,这需要一些新的依赖.我们将在功能分支中实现并测试它.在这个分支中,我们将更新composer.json文件.完成该功能后,我们使用pull请求合并它并将其部署git pull在服务器上.我们将执行composer install在服务器上安装新的依赖项.此工作流程的问题:对于Git和Composer更新之间的时间,系统可能由于缺少依赖性而中断.
如果没有任何停机时间和没有维护模式,您如何在工作流程中解决这个问题?
我想手动完成,一种解决方案是部署到服务器上的版本化文件夹,然后在composer install完成后将该文件夹软链接到实际的生产文件夹.这样,您的网站基本上没有停机时间.例如,您的文件夹结构可能如下所示:
./
../
app/
/current --> app/versions/01
/versions
/01
Run Code Online (Sandbox Code Playgroud)
并指出该网站的文档根目录app/current.然后部署过程可能是这样的(您需要更改路径以匹配您的情况):
$ cp -r app/versions/01 app/versions/02 # make a new version
$ cd app/versions/02
$ git pull # update the new version
$ composer install # update new version dependencies
$ ln -sfn app/versions/02 app/current # make new version live
Run Code Online (Sandbox Code Playgroud)
请注意,必须将Web服务器设置为遵循符号链接.之后,您的文件夹结构将如下所示:
./
../
app/
/current --> app/versions/02
/versions
/01
/02
Run Code Online (Sandbox Code Playgroud)
作为此方法的一个奖励:如果新版本出现问题,您可以在排除故障时将符号链接指回原始版本.
如果你想自动化这个过程,还有一些部署工具可以为你处理这类事情,比如Capistrano和Mina.
| 归档时间: |
|
| 查看次数: |
1210 次 |
| 最近记录: |