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
|
||||
echo "正在安装Yarn..."
|
||||
npm install -g yarn
|
||||
npm install -g yarn --unsafe-perm=true --allow-root
|
||||
fi
|
||||
|
||||
# 安装PM2并确保可用
|
||||
if ! command -v pm2 &> /dev/null; then
|
||||
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
|
||||
|
||||
# 检查并安装Redis
|
||||
@@ -171,18 +206,35 @@ deploy_on_server() {
|
||||
|
||||
# 停止旧的应用实例
|
||||
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 "启动新的应用实例..."
|
||||
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 save
|
||||
pm2 startup
|
||||
if command -v pm2 &> /dev/null; then
|
||||
pm2 save
|
||||
pm2 startup
|
||||
else
|
||||
\$PM2_CMD save
|
||||
\$PM2_CMD startup
|
||||
fi
|
||||
|
||||
echo "部署完成!"
|
||||
pm2 status
|
||||
if command -v pm2 &> /dev/null; then
|
||||
pm2 status
|
||||
else
|
||||
\$PM2_CMD status || echo "无法执行pm2 status命令"
|
||||
fi
|
||||
EOF
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
|
||||
Reference in New Issue
Block a user