GIT 本地倉庫提交到碼雲,Linux倉庫自動拉取


本地 windows 10 ,托管平台 碼雲 ,另一個遠程倉庫環境 Linux 

1 首先碼雲新建倉庫

 

2 windows 本地拉取剛才項目 

 

3 linux拉取剛才新倉庫

   

 

4 進入碼雲控制台剛才倉庫-管理-WebHooks-添加

5,域名解析,nginx添加二級域名

 

vim  xxx.conf, 修改server_name root wq!保存退出,

然后  service nginx restart 重啟nginx 

然后   cd /app 

mkdir xxx

cd xxx

vim index.php  <? phpinfo();

如果輸出下圖,說明webhooks配置成功

 接下來修改index.php內容為

<?php
$json = file_get_contents("php://input");
$data = json_decode($json,true);
if (isset($data['ref']) && $data['total_commits_count']>0) {
    $res = PHP_EOL."pull start ---------------------------------------------".PHP_EOL;
    $res .= shell_exec("cd /app/xxx && git pull  2<&1 ");
    $res_log = '------------------------------------------------------------'.PHP_EOL;
    $res_log .= $data['user_name'] . ' 在' . date('Y-m-d H:i:s') . '向' . $data['repository']['name'] . '項目的' . $data['ref'] . '分支push了' . $data['total_commits_count'] . '個commit:'.$data['commits']['message'];
    $res_log .= $res.PHP_EOL;
    $res_log .= "pull end -----------------------------------------------------".PHP_EOL;
    file_put_contents("/home/wwwlogs/webhook/".date('Y-m-d',time()).".txt", $res_log, FILE_APPEND);//寫入日志到log文件中
}

wq!保存退出

回到本地新建個1.txt  新增-提交-推送到遠程倉庫

回到linux /app/git_hook文件夾下 ls, what fuck ? 沒東西??

再看一下剛才/app/xxx/index.php 文件內容  最后一行為 寫入文件到/home/wwwlogs/webhook/下? 進入/home下  ls 空空如也,原因是沒有權限,

好吧 手動新建 mkdir -p /wwwlogs/webhook 建完給權限 chmod -R  777 wwwlogs/

 

好吧,回到本地新增個2.txt, 提交-推送,再回到/app/git_hook  ls 還是空空如也 ,進入/home/wwwlogs/webhook/目錄下

看到日志寫進去了 cat 日志名稱

內容如下

進入 app 目錄下 查看 git_hook權限    cd /app&ll  看到是root用戶root組

chown -R www:www git_hook/

重新再本地新建3.txt 提交 推送 . 回到Linux  看到已經自動更新成功

附錄 nginx 配置

server {
        charset utf-8;
        client_max_body_size 128M;
        listen 80;
        server_name  xxx.php404.com;
        root  /app/xxx;
        index  index.php;
    
        location ~* \.(eot|otf|ttf|woff)$ {
            add_header Access-Control-Allow-Origin *;
        }
    
        
        location / {
            index    index.html index.php;
          

            if ( !-e $request_filename) {
                rewrite ^/(.*)$ /index.php/$1 last;
                break;
            }
         #autoindex  on;
        }
    
        location ~ \.php {
            set $script $uri;
            set $path_info "";
            if ($uri ~ "^(.+\.php)(/.+)") {
                set $script $1;
                set $path_info $2;
            }
            include   fastcgi_params;
            fastcgi_index    index.php?IF_REWRITE=1;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_param    PATH_INFO    $path_info;
            fastcgi_param    SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            fastcgi_param    SCRIPT_NAME    $script;
            try_files $uri =404;
        }
    access_log  /var/log/nginx/dubang-access.log  mains;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM