跳到主要内容

通过 pm2 部署 node.js 项目

· 阅读需 2 分钟
一介布衣
全栈开发者 / 技术写作者
  • 文章目录
  • 安装 pm2

  • 初始化 pm2 配置文件

  • 编辑ecosystem.json

  • 执行部署

  • 更新部署

  • 我们如何用 pm2 把 node.js项目 部署到服务器

安装 pm2

全局安装

➜  /Users/zhangzhi  >sudo npm install -g pm2

初始化 pm2 配置文件

➜  /Users/zhangzhi  >pm2 ecosystem

-------------

Looking for a complete monitoring and management tool for PM2?
Check out:
_ _ _ _
| | _____ _ _ _ __ ___ ___| |_ _ __(_) ___ ___ (_) ___
| |/ / _ \ | | | '_ ` _ \ / _ \ __| '__| |/ __/ __| | |/ _ \
| < __/ |_| | | | | | | __/ |_| | | | (__\__ \_| | (_) |
|_|\_\___|\__, |_| |_| |_|\___|\__|_| |_|\___|___(_)_|\___/
|___/

Register here:

https://app.keymetrics.io/

-------------

[PM2] Spawning PM2 daemon
[PM2] PM2 Successfully daemonized
File /Users/zhangzhi/ecosystem.json generated

运行命令的当前目录下会生成一个ecosystem.json 文件

编辑ecosystem.json

{
apps : [
{
name : "API",
script : "app.js",
env: {
COMMON_VARIABLE: "true"
},
env_production : {
NODE_ENV: "production"
}
},

// Second application
{
name : "WEB",
script : "web.js"
}
],
deploy : {
production : {
user : "node",
host : "212.83.163.1",
ref : "origin/master",
repo : "git@github.com:repo.git",
path : "/var/www/production",
"post-deploy" : "npm install ; pm2 startOrRestart ecosystem.json --env production"
},
dev : {
user : "node",
host : "212.83.163.1",
ref : "origin/master",
repo : "git@github.com:repo.git",
path : "/var/www/development",
"post-deploy" : "npm install ; pm2 startOrRestart ecosystem.json --env dev",
env : {
NODE_ENV: "dev"
}
}
}
}

解析配置文件
user :登录用户名
host : 要部署的目标服务器或者域名
ref : 用于部署代码时的分支
repo : git 仓库地址
path : 在目标服务器上部署的文件目录地址
post-deploy : 部署后启动的脚本

执行部署

pm2 deploy ecosystem.json production

更新部署

pm2 deploy production update