92 lines
2.3 KiB
Bash
92 lines
2.3 KiB
Bash
|
|
#!/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
|