美文网首页GitGit使用Git
线上服务器 Git 自动更新代码

线上服务器 Git 自动更新代码

作者: pijh | 来源:发表于2017-09-29 15:34 被阅读94次

团队开发过程中,团队成员 Push 到 git 远程仓库时,远程仓库会自动监听 Push 命令并触发服务器上的 WebHooks 脚本,实现线上服务器代码自动 Pull 更新,官方参考文档

登录开源中国码云,https://gitee.com
码云
进入某个项目,点击管理
进入项目管理
新增部署公钥
[root@iZbp17xenom6dgmv6v3sphZ ~]# ssh-keygen -t rsa -C "auto_pull"
[root@iZbp17xenom6dgmv6v3sphZ ~]# cd ~/.ssh/
[root@iZbp17xenom6dgmv6v3sphZ .ssh]# ll
total 12
-rw------- 1 root root 1675 Sep  8 14:32 id_rsa
-rw-r--r-- 1 root root  386 Sep  8 14:32 id_rsa.pub
-rw-r--r-- 1 root root  367 Sep 27 08:38 known_hosts
[root@iZbp17xenom6dgmv6v3sphZ .ssh]# 
  • 将id_rsa.pub公钥里面的内容拷贝到部署公钥里面保存,官网参考文档
    添加部署公钥
  • 测试是否添加成功,看到Welcome to Gitee.com, Anonymous!证明公钥添加成功
[root@iZbp17xenom6dgmv6v3sphZ .ssh]# ssh -T git@gitee.com
The authenticity of host 'gitee.com (120.55.226.24)' can't be established.
ECDSA key fingerprint is 27:e5:d3:f7:2a:9e:eb:6c:93:cd:1f:c1:47:a3:54:b1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitee.com' (ECDSA) to the list of known hosts.
Welcome to Gitee.com, Anonymous!
[root@iZbp17xenom6dgmv6v3sphZ .ssh]# 
新增WebHooks,URL为线上服务器地址对应的某个方法(如果使用MVC模式开发),密码设置是为了防止恶意更新操作,可在线上服务器 Pull 时校验
WebHooks
线上服务器更新逻辑, /root/www/project是你的项目目录,根据实际情况设定,返回上述步骤点击【测试】,如果能返回更新信息说明配置成功
public function git()
{
        /* 数据校验省略,
           post过来的是json数据,
          一般只是验证密码是否与之前后台的一样 
        */

        header('Content-type:text/html;charset=utf-8');
        $output = shell_exec("cd /root/www/project; sudo -u root git pull 2<&1");
        echo "<pre>$output</pre>";
}

注意:
执行上述步骤前请确保线上服务器已经安装好了 git 环境,并且 git 已经加入了环境变量,用作更新的用户请确保此用户的公钥已经添加到了Gitee部署公钥 里面了,上述步骤没有校验密码,为了安全建议大家完善密码校验部分。

相关文章

  • 线上服务器 Git 自动更新代码

    团队开发过程中,团队成员 Push 到 git 远程仓库时,远程仓库会自动监听 Push 命令并触发服务器上的 W...

  • 10、在服务器正式部署和发布上线nodejs项目。

    一、上传项目代码到线上git仓库并从线上git仓库将项目clone到服务器 github相信大家都不会陌生,大家通...

  • git的常用命令

    从git服务器拉取最新代码 提交代码到git服务器 git查看当前git目录所在分支 查看所有git分支 切换分支...

  • GIT使用命令

    git pull(更新服务器代码到本地,若命令执行成功,则更新代码成功)git push(更新本地代码到服务器,若...

  • git

    git 如果服务器上没有本地代码git仓库,先在服务器建立1个git仓库,然后在本地git仓库增加服务器仓库URL...

  • Shell自动化场景的应用

    场景一:Git代码自动更新 背景描述:工作中,我们电脑或多或少很多个工程 git pull 可能是你开启电脑开始一...

  • git方法记录

    git服务器代码强制覆盖本地

  • git自动部署代码

    git自动部署代码服务器创建裸仓库: 配置自动部署代码的脚本: 权限问题:git:git nginx:www...

  • 纯前端服务器配置

    纯前端服务器配置 服务器环境 配置git项目 配置git自动同步 配置后端服务器别名 通过Git提交与更新代码 纯...

  • 私有Cocoapods仓库&遇到的问题

    Git代码搬迁 在新Git服务器创建需要迁移的同名空项目(不同名也可以) Git clone 旧Git代码到本地 ...

网友评论

    本文标题:线上服务器 Git 自动更新代码

    本文链接:https://www.haomeiwen.com/subject/vcyuextx.html