通过持续集成编译并打包,结合用户定义具体的部署脚本,可以轻松将用户的代码部署到指定的机器上。
解决方案
推荐的工具是Goploy https://github.com/zhenorzz/goploy
官方文档Goploy Doc https://docs.goploy.icu/
优点
安装便捷,依赖少
环境区分,简单清晰
支持rsync、sftp同步代码,方便高效
支持Windows、Linux服务器
项目安装
参考
https://docs.goploy.icu/#/start/index
构建流程
前提
场景:部署web代码到服务器。
-
A服务器-安装goploy的服务器(一般都是内网服务器)
-
B服务器-生产环境服务器(一般都是外网服务器)
配置
-
服务器管理配置服务器
-
ssh key所有者填写ssh-keygen生成时的所有者
-
项目管理配置项目
-
部署路径为B服务器的路径,部署时A服务器rsync到B服务器该目录;
-
开启软链部署,部署时A服务器rsync到B服务器的软链目录,然后ln -sf到部* 署目录;
-
拉取后运行脚本是指,git pull后运行的脚本,通常用于打包(npm run build、mvn package之类);
-
部署后运行脚本是指,rsync到B服务器后运行的脚本,通常用于重启应用(app restart);
-
开启构建通知后,项目构建会推送到相应的app,如何配置参考相应app的webhook或机器人;
构建
-
检测是否有项目目录,无则git clone;
-
git pull;
-
git pull完成后运行脚本;
-
rsync到B服务器
-
rsync完成后运行脚本;
-
触发构建通知
服务器配置#预览
参考资料 GitHub - zhenorzz/goploy: Devops项目代码部署发布平台,Manager.https://docs.goploy.icu/#