react, node 前端项目自动部署
环境
- 本地 macos mojave(windows 同理):
- pm2, git
- 服务器 ubuntu 14:
- pm2, git
工具
- 代码托管github(或gitee,gitlab等等)
- 部署工具 pm2
过程
配置
- 将ssh密钥添加到github(服务器执行相同的操作)
-
生成密钥
ssh-keygen // 默认配置即可 cd ~/.ssh cat id_rsa.pub // 复制并打开github 网址 setting/ssh页面
id_rsa.pub打开样子
-
将密钥添加到托管平台
- 测试添加是否成功
ssh -T git@github.com
-
- 安装pm2(本地和服务器都要装pm2)
npm install pm2 -g
- 配置pm2
- 生成pm2配置文件
pm2
- 设置ecosystem.config.js
module.exports = {
apps : [{
name: 'test',
script: 'test.js',
// Options reference: https://pm2.io/doc/en/runtime/reference/ecosystem-file/
// 远程服务器上的PM2参数配置
args: 'one two', //参数
instances: 1, //实例数量
autorestart: true, //自动启动:是
watch: false, //监视模式:否
max_memory_restart: '1G',//如果超过内存多少后,将重启实例:1G
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production'
}
}],
deploy : {
production : {
user : '远程主机用户名',
host : '远程主机的ssh-config中的别名',
port : '远程主机ssh端口',
ref : 'origin/master',//远程gitee上的分支
repo : 'git@[gitee别名]:[git库地址]',
path : '远程服务器上的部署路径',
'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env production'//部署完成后的操作
}
}
};