node项目vue 自动化部署之pm2
一.安装git:
1.安装:
yum install -y git
2.查看版本:
git version
二.安装node:
方案一:(推荐)
安装Node.js版本管理器 (宝塔)
方案二:
yum方式安装
yum install nodejs 安装后是老版本
方案三:wget
yum install -y wget 安装wget
wget https://nodejs.org/dist/v16.13.1/node-v16.13.1.tar.gz 下载nodejs
xz -d node-v9.3.0-linux-x64.tar.xz 解压 tar -xf node-v9.3.0-linux-x64.tar
1 | ln -s ~/node-v9.3.0-linux-x64/bin/node /usr/bin/node 部署bin文件<br><br>ln -s ~/node-v9.3.0-linux-x64/bin/npm /usr/bin/npmln -s ~/node-v9.3.0-linux-x64/bin/npm /usr/bin/npx |
node -v 测试
npm
npx
方案四:
安装pm2管理器 ui (宝塔)
三.安装pm2:(如果上步使用方案四,此步安装可以忽略)
1.安装:
npm install pm2 -g 安装
常用命令:
pm2 start start.js 启动node程序
pm2 start app.js --name application1 启动进程并指定应用的程序名
pm2 start start.js -i max 集群模式启动 ,-i 表示 number-instances 实例数量;max 表示 PM2将自动检测可用CPU的数量 可以自己指定数量
pm2 start app.js --name start --watch 在文件改变的时候会重新启动程序
pm2 list 简写pm2 ls 列出所有进程
pm2 delete app 指定进程名删除 pm2 delete 0 指定进程id删除
pm2 delete all 删除进程列表中所有进程
pm2 describe app 查看某个进程具体情况
pm2 monit 查看进程的资源消耗情况
pm2 restart app 重启指定名称的进程
pm2 restart all 重启所有进程
pm2 logs app 查看该名称进程的日志
pm2 logs all 查看所有进程的日志
pm2 startup centos 开启启动设置,此处是CentOS系统,其他系统替换最后一个选项(可选项:ubuntu, centos, redhat, gentoo, systemd, darwin, amazon)
pm2 save 保存
四.通过pm2配置文件来自动部署项目(本章核心)
1.在项目根目录下新建一个 deploy.yaml 文件
内容:
# deploy.yaml apps: - script: ./start.js # 入口文件 name: 'app' # 程序名称 env: # 环境变量 COMMON_VARIABLE: true env_production: NODE_ENV: production deploy: # 部署脚本 production: # 生产环境 user: lentoo # 服务器的用户名 host: 192.168.2.166 # 服务器的ip地址 port: 22 # ssh端口 ref: origin/master # 要拉取的git分支 ssh_options: StrictHostKeyChecking=no # SSH 公钥检查 repo: https://github.com/**.git # 远程仓库地址 path: /home # 拉取到服务器某个目录下 pre-deploy: git fetch --all # 部署前执行 post-deploy: npm install && pm2 reload deploy.yaml --env production # 部署后执行 env: NODE_ENV: production
2.配置git的ssh免密认证
使用部署公钥即可:参考码云gitee官网提供的配置ssh
https://gitee.com/help/articles/4181#article-header0
3.使用pm2部署项目:
pm2 deploy deploy.yaml production setup (仅首次执行)
pm2 deploy deploy.yaml production upddate 更新
4.常见错误:
错误1:
pm2 deploy deploy.yaml production setup 执行此命令时,如果不能正常。
解决:
请使用git命令去执行:pm2 deploy deploy.yaml production setup
错误2:
(ECDSA) to the list of known hosts.
解决:
ssh-keyscan -t rsa gitee.com>>~/.ssh/known_hosts //码云 ssh-keyscan -t rsa github.com>>~/.ssh/known_hosts github
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2019-12-11 ORM之Entity Framework(EF)
2019-12-11 ORM之Dapper
2019-12-11 ORM基础知识
2019-12-11 DI 依赖注入之unity的MVC版本使用Microsoft.Practices.Unity1.2与2.0版本对比
2014-12-11 javascript 简繁转换