perf: 优化脚本
This commit is contained in:
66
deploy.sh
66
deploy.sh
@@ -141,12 +141,47 @@ deploy_on_server() {
|
|||||||
|
|
||||||
if ! command -v yarn &> /dev/null; then
|
if ! command -v yarn &> /dev/null; then
|
||||||
echo "正在安装Yarn..."
|
echo "正在安装Yarn..."
|
||||||
npm install -g yarn
|
npm install -g yarn --unsafe-perm=true --allow-root
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# 安装PM2并确保可用
|
||||||
if ! command -v pm2 &> /dev/null; then
|
if ! command -v pm2 &> /dev/null; then
|
||||||
echo "正在安装PM2..."
|
echo "正在安装PM2..."
|
||||||
npm install -g pm2
|
npm install -g pm2 --unsafe-perm=true --allow-root
|
||||||
|
|
||||||
|
# 重新加载环境变量
|
||||||
|
source ~/.bashrc 2>/dev/null || source ~/.zshrc 2>/dev/null || true
|
||||||
|
|
||||||
|
# 创建PM2的符号链接到/usr/local/bin
|
||||||
|
if [ -f "/usr/local/bin/pm2" ]; then
|
||||||
|
echo "PM2已存在于/usr/local/bin"
|
||||||
|
elif [ -f "/usr/bin/pm2" ]; then
|
||||||
|
echo "PM2已存在于/usr/bin"
|
||||||
|
else
|
||||||
|
# 查找PM2安装位置并创建符号链接
|
||||||
|
PM2_INSTALL_PATH=\$(find /usr/local/lib/node_modules/pm2/bin/pm2 2>/dev/null)
|
||||||
|
if [ -n "\$PM2_INSTALL_PATH" ]; then
|
||||||
|
ln -sf \$PM2_INSTALL_PATH /usr/local/bin/pm2
|
||||||
|
echo "已创建PM2符号链接"
|
||||||
|
else
|
||||||
|
echo "警告: 无法找到PM2安装路径"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 验证PM2是否可用
|
||||||
|
if command -v pm2 &> /dev/null; then
|
||||||
|
echo "PM2已准备就绪"
|
||||||
|
else
|
||||||
|
echo "尝试使用完整路径运行PM2..."
|
||||||
|
PM2_CMD="/usr/local/bin/pm2"
|
||||||
|
if [ ! -f "\$PM2_CMD" ]; then
|
||||||
|
PM2_CMD="/usr/bin/pm2"
|
||||||
|
fi
|
||||||
|
if [ ! -f "\$PM2_CMD" ]; then
|
||||||
|
echo "错误: 无法找到PM2可执行文件"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 检查并安装Redis
|
# 检查并安装Redis
|
||||||
@@ -171,18 +206,35 @@ deploy_on_server() {
|
|||||||
|
|
||||||
# 停止旧的应用实例
|
# 停止旧的应用实例
|
||||||
echo "停止旧的应用实例..."
|
echo "停止旧的应用实例..."
|
||||||
pm2 delete $PROJECT_NAME 2>/dev/null || true
|
if command -v pm2 &> /dev/null; then
|
||||||
|
pm2 delete $PROJECT_NAME 2>/dev/null || true
|
||||||
|
else
|
||||||
|
\$PM2_CMD delete $PROJECT_NAME 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
|
||||||
# 启动新的应用实例
|
# 启动新的应用实例
|
||||||
echo "启动新的应用实例..."
|
echo "启动新的应用实例..."
|
||||||
pm2 start ecosystem.config.js --env production
|
if command -v pm2 &> /dev/null; then
|
||||||
|
pm2 start ecosystem.config.js --env production
|
||||||
|
else
|
||||||
|
\$PM2_CMD start ecosystem.config.js --env production
|
||||||
|
fi
|
||||||
|
|
||||||
# 保存PM2配置
|
# 保存PM2配置
|
||||||
pm2 save
|
if command -v pm2 &> /dev/null; then
|
||||||
pm2 startup
|
pm2 save
|
||||||
|
pm2 startup
|
||||||
|
else
|
||||||
|
\$PM2_CMD save
|
||||||
|
\$PM2_CMD startup
|
||||||
|
fi
|
||||||
|
|
||||||
echo "部署完成!"
|
echo "部署完成!"
|
||||||
pm2 status
|
if command -v pm2 &> /dev/null; then
|
||||||
|
pm2 status
|
||||||
|
else
|
||||||
|
\$PM2_CMD status || echo "无法执行pm2 status命令"
|
||||||
|
fi
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user