多服务器自动部署解析

2018-02-22  本文已影响0人  魂狩

事件触发流程:

git提交->触发git webhook->post请求到对应php进行处理->php判断是什么项目,是否是开发分支,需要发送到哪个服务器->socket发送项目名到对应服务器->python接收到项目名后,对对应项目进行更新操作。
php的更新非常简单,git pull -r即可。下面着重介绍下前端要怎么进行部署。

首先,由于执行npm run build后,会先把之前的代码全部删掉,所以编译和部署需要拆分开,不能直接将dist文件夹软链接到目标文件夹,否则在编译过程中的几分钟,服务将无法访问。先编译得到目标代码,然后删除原有代码,再把更新后的代码更新上去。

原生版:

git更新,然后执行npm run build,没问题就删除原有代码,移动dist里面的内容到nginx(web服务器)配置的目录。

docker版:

由于一个服务器会有多个前端项目,为每一个前端项目创建一个容器过于浪费。所以采取的解决方案是:

更新的时候,首先删除原有/var/www/front软链接,创建新的指向目标项目的软链接。执行f_init容器,更新项目依赖。执行f_build容器,生成目标代码。删除html下的旧有代码,移动最新代码进去。前端代码更新完成。

上一篇下一篇

猜你喜欢

热点阅读