使⽤Shell脚本实现⾃动更新并部署先放上前端与后台的Shell代码
deploy_client_web
# 引⽤⼯程路径
PROJECT_PATH=/data/SkyBlog/client_web/
# ⼯程构建完成后存放的路径
BUILD_PATH=${PROJECT_PATH}/build/
# 页⾯部署在Apache的路径
APACHE_DEPLOY_PATH=/data/wwwroot/default/skyblog/
# 更新⼯程
git pull
# 检查⼯程依赖项
npm install $PROJECT_PATH
# 构建⼯程
npm run build $PROJECT_PATH
# 删除旧构建⽂件
rm -r ${APACHE_DEPLOY_PATH}*
# 将新构建的⽂件移⾄Apache⽬录下
cp -R ${BUILD_PATH}* $APACHE_DEPLOY_PATH
deploy_server_api
# 应⽤名,⽤来查进程
APP_NAME=skyblog
# 引⽤⼯程路径
PROJECT_PATH=/data/SkyBlog/server_api/
# 打包JAR的路径
PROJECT_JAR_PATH=${PROJECT_PATH}/target/skyblog-1.0.0-RELEASE.jar
# 获取应⽤的PID
PID=$(ps aux | grep $APP_NAME | grep -v grep | awk '{printf $2}')
# 更新⼯程
git pull
# 如果应⽤正在运⾏,则强制终⽌进程
if [ -n "$PID" ];then
shell代码
kill $PID
fi
# 构建⼯程
sh mvn clean package -f $PROJECT_PATH
# 启动应⽤
nohup java -jar $PROJECT_JAR_PATH &
解析
两个更新部署思路⾮常相似,都是这样⼀个流程
1. git仓库更新
2. 停⽌/删除旧的构建
3. 构建新的⼯程
4. 部署/启动⼯程
因为前端是部署在Apache上的,所以只需要删除旧⽂件再放进新⽂件就可以
⽽后台则是使⽤Spring Boot构建的jar来启动的,所以就需要kill掉进程再构建与启动

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。