使用pm2优雅的让你的项目自动发布上线

标签(空格分隔): pm2


目的:
在本地执行命令,然后让服务器自动把你的代码从git上面拉去到服务器上面。每次都自动化,不需要手工去登录服务器下载代码,或拷贝。

前提:
把自己的项目推送到git仓库
当然如果是自己的公司项目,肯定不想让项目公开。
可以使用私有仓库,
然后再github的私有仓库收费很贵 20$ 每月

下面介绍一些私有仓库不收费的
国产开源中国
git.oschina.net
国产
coding.net

gitlab.com

生成秘钥
ssh-keygen -t rsa -C 'wsd312@163.com'

更改防火墙端口
vim /etc/iptables.rules

使用nginx 反向代理转发
可以把 3000  8080
这些端口转发到 80

www.shudong.wang:3000/index.html
80

第一步创建一个 ecosystem.json 文件

第二步写ecosystem.json配置文件

{
    "apps": [{
        "name": "student",
        "script": "app.js",
        "env": {
            "COMMON_VARIABLE": "true"
        },
        "env_production": {
            "NODE_ENV": "production"
        }
    }],
    "deploy": {
        "production": {
            "user": "ubuntu",
            "host": ["主机ip"],
            "port": 22,
            "ref": "origin/master",
            "repo": "https://git.oschina.net/shudongwang/student.git",
            "path": "/home/ubuntu/www",
            "ssh_options": "StrictHostKeyChecking=no",
            "env": {
                "NODE_ENV": "production"
            }
        }
    }
}

第三部执行

下面的命令是按照你的配置文件把本地的代码发布到服务器上面,用户初始化。

pm2 deploy ecosystem.json production setup

以后更改代码后使用下面这个命令发布
pm2 deploy ecosystem.json production