实现原理

  1. 当我们执行git push操作时,把代码提交到git仓库.
  2. git仓库接收到我们的代码时,执行预先写好的脚本,把代码更新到应用程序上.
  3. 应用程序更新完成后,被pm2监听到文件改变,从而重启应用程序,使应用程序一直运行在最新的代码状态.

好处

这样可以让我们部署应用的时候,只需要部署一次,以后可以一直保持最新的代码状态.

步骤

前置条件

  1. 安装了nginx,点击我告诉你怎么安装

  2. 安装了git,点击我告诉你怎么安装

  3. linux搭建git服务端,点击我告诉你怎么实现

  4. 安装了nodejs,点击我告诉你怎么安装

  5. 安装了pm2

    #安装pm2 npm install pm2 -g

pm2常用命令

解释说明

pm2 start xxx

启动服务器

pm2 list

查看运行状态

pm2 logs

查看日志

pm2 restart xxx

重启应用

pm2 stop xxx

停止应用

pm2 start xxx --watch

监听修改,并自动重启

具体实现(下面以我自己的为例)

  1. 进入git仓库的hooks目录

    cd /home/git/cms.git/hooks

20200713215518-2021-12-29-20-30-35

  1. 创建post-receive文件,并写入下面的语句

    git --work-tree=/usr/local/cms --git-dir=/home/git/cms.git checkout -f exec git update-server-info

20200713220245-2021-12-29-20-30-49

参数解析: --work-tree=/usr/local/cms 这是我的网站目录 --git-dir=/home/git/cms.git 这是我的git仓库目录 checkout -f 强制检出 exec git update-server-info 每次更新完成后会记录元信息,确保正确性

  1. 让git对post-receive文件拥有执行权限

    chmod 775 post-receive

  2. 让git对/usr/local/cms目录拥有写的权限

    chmod -R 777 /usr/local/cms

参数说明: -R recursive(递归),把某个目录中的文件全部赋予给定的权限

  1. 让pm2启动并监听应用程序

    #每个人应用程序不同,这个启动只当参考 pm2 start npm -- run serve --watch

总结

每次本地文件push到服务器git仓库后.git仓库会自动更新应用程序的文件.pm2监听到应用程序文件改变,会自动重启应用程序.至此,我们就实现了git推送自动更新应用程序的全过程.

THE END
开启精彩搜索

历史搜索

用户名或邮箱
密码
用户名
密码
重复密码
邮箱
注册
找回密码
注册 登录
邮箱
邮箱验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

新增

新增