关于git部署webhook

706 查看

添加项目部署公钥

  1. 生成公钥

    sudo -Hu apache ssh-keygen -t rsa -C "myEmail@email.com" # 请选择 "no passphrase",一直回车下去
    sudo cat /var/www/.ssh/id_rsa.pub # 查看生成的密钥内容,复制全部
  2. 添加到git服务器

注意: 同一个公钥只能绑定一个账户,而Coding 暂时不支持同一公钥绑定多个账户。解决方法如下

  1. ssh命令默认只会读取 id_rsa这个私钥,因此添加文件.ssh/config
    sudo vim /var/www/.ssh/config,添加以下内容

     Host git.coding.net
     User myemail@email.com
     PreferredAuthentications publickey
     IdentityFile ~/.ssh/coding_rsa  // 生成的非默认地址的公钥存放点

    重置权限sudo chown apache:apache /var/www/.ssh/config

  2. 新建新的公钥,后再添加到coding.net

    sudo -Hu apache ssh-keygen -t rsa -C "myEmail@email.com" -f /var/www/.ssh/coding_rsa
    sudo cat /var/www/.ssh/coding_rsa.pub

部署项目

sudo mkdir /var/www/html/site/
sudo chown -R /var/www/html/site/
sudo -Hu apache /usr/local/bin/git clone git@coding.net:you/site.git /var/www/html/site/  --depth=1

创建webhook

创建php的webhook文件,sudo vim /var/www/site/hook.php,输入以下内容

<?php
    $respon=json_decode(file_get_contents('php://input'));
    if($respon->token=='zssy'){
        echo "<pre>".shell_exec('cd /var/www/html/site&& /usr/local/bin/git  pull 2>&1')."</pre>";
    }

再分配权限sudo chown apache:apache /var/www/html/hook.php