上一篇:记录用pm2启动nestjs项目 - 掘金 (juejin.cn)
介绍
- 先在jenkins服务器打包项目
- 连接目标服务器,运行.sh文件
- 在目标服务器启动(重启)node项目
jenkins打包命令
node -v
npm -v
yarn
npm run build
tar -cvzf ./dist.tar.gz ./dist ./package.json
rimraf node_modules
目标服务器的shell文件
/root/deploy_web_root_for_node.sh
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/jdk1.8.0_181/bin:/root/bin:/bin
PATH=.:$PATH
export PATH
projectname=$1
topath=$2
pm2Name=$3
echo $projectname $topath
if [ -d "$topath" ] ; then
cd $topath
rm -rf ./dist ./package.json
wget -P ./ http://fspace.****.com/$projectname/dist.tar.gz
tar -xzvf dist.tar.gz
rm -rf dist.tar.gz
yarn
pm2 restart $pm2Name
fi
在shell文件中执行node相关命令 node、npm 等
上一步 .sh文件中需要执行,yarn、pm2命令
初次执行报错了:
yarn: command not found
pm2: command not found
解决办法是创建软连接:
先查看node安装在哪:
which node
得到 /root/.nvm/versions/node/v16.15.1/bin/node
创建软连接:
sudo ln -s /root/.nvm/versions/node/v16.15.1/bin/node /usr/local/bin/node/
yarn、pm2 同理,按照上面的方式,把node替换成yarn、pm2就可以了
参考: