diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..f162bd1 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,92 @@ +#!/bin/bash + +# 部署脚本:从远程仓库下载代码,打包并启动lark-panel的各个模块 +# 使用pm2进行进程管理,确保重启后服务自动启动 + +# 设置变量 +REPO_URL="http://47.121.181.112:3000/wonder/lark-panel.git" +WORK_DIR="/tmp/lark-panel-deploy" +DEPLOY_DIR="/opt/lark-panel" +LOG_DIR="/var/log/lark-panel" + +# 创建必要的目录 +mkdir -p $DEPLOY_DIR +mkdir -p $LOG_DIR + +# 清理旧的工作目录 +if [ -d "$WORK_DIR" ]; then + rm -rf $WORK_DIR +fi + +# 克隆代码仓库 +echo "正在从远程仓库下载代码..." +git clone $REPO_URL $WORK_DIR + +if [ $? -ne 0 ]; then + echo "错误:无法克隆代码仓库" + exit 1 +fi + +# 进入工作目录 +cd $WORK_DIR + +# 打包各个模块 +echo "正在打包各个模块..." + +# 打包common模块(依赖) +echo "打包common模块..." +mvn clean package -pl common -am -DskipTests + +# 打包movie模块 +echo "打包movie模块..." +mvn clean package -pl movie -am -DskipTests + +# 打包weather模块 +echo "打包weather模块..." +mvn clean package -pl weather -am -DskipTests + +# 打包lark模块 +echo "打包lark模块..." +mvn clean package -pl lark -am -DskipTests + +if [ $? -ne 0 ]; then + echo "错误:打包失败" + exit 1 +fi + +# 复制jar包到部署目录 +echo "复制jar包到部署目录..." +cp movie/target/movie-*.jar $DEPLOY_DIR/movie.jar +cp weather/target/weather-*.jar $DEPLOY_DIR/weather.jar +cp lark/target/lark-*.jar $DEPLOY_DIR/lark.jar + +# 停止并删除现有的pm2进程(如果存在) +echo "停止现有进程..." +pm2 stop movie weather lark 2>/dev/null || true +pm2 delete movie weather lark 2>/dev/null || true + +# 使用pm2启动各个模块 +echo "使用pm2启动各个模块..." + +# 启动movie模块 +pm2 start "java -jar $DEPLOY_DIR/movie.jar" --name movie --log $LOG_DIR/movie.log --restart-delay 5000 + +# 启动weather模块 +pm2 start "java -jar $DEPLOY_DIR/weather.jar" --name weather --log $LOG_DIR/weather.log --restart-delay 5000 + +# 启动lark模块 +pm2 start "java -jar $DEPLOY_DIR/lark.jar" --name lark --log $LOG_DIR/lark.log --restart-delay 5000 + +# 保存pm2配置,确保重启后自动启动 +pm2 save +pm2 startup + +echo "部署完成!所有模块已启动并使用pm2管理。" +echo "使用 'pm2 list' 查看进程状态" +echo "使用 'pm2 logs [module_name]' 查看日志" + +# 清理临时目录 +cd / +rm -rf $WORK_DIR + +exit 0 \ No newline at end of file