实现原理

  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
推荐文章
  • docker删除未使用到的镜像

  • 微信把地区设置为中国大陆

  • 黄帝内经-第31篇-热论篇(1)

  • axios的timeout不生效

  • 黄帝内经-第45篇-厥论篇(1)

  • 小程序实现跳转到百度网盘

  • 社交电商的本质

  • Docker 镜像加速

评论 共0条
开启精彩搜索

热门搜索

暂无

历史搜索

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

购买将消耗【10

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

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

0字

0字

2024年10月

0字

新增

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

0字

新增

0字

0字

0字

0字

新增

0字

0字