通过 pm2 部署 node.js 项目
文章目录
我们如何用 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