美文网首页
多服务器自动部署解析

多服务器自动部署解析

作者: 魂狩 | 来源:发表于2018-02-22 11:45 被阅读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,指向目标编译的源代码。
    • 将docker的app文件夹映射到/var/www/front文件夹去,同时需要映射/var/www文件夹本身(因为使用了软链接,app文件夹会直接映射到/var/www下的源码文件夹)。
    • 每个项目下都有html软链接,指向web服务器配置的目录。
    • 更新的时候修改/var/www/front映射的文件夹即可修改需要更新的项目。

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

    相关文章

      网友评论

          本文标题:多服务器自动部署解析

          本文链接:https://www.haomeiwen.com/subject/pngatftx.html