코드 클 라 우 드 웹 훅 2 분기 (master/develop) 자동 배치 생산 복/테스트 복

1. 로 컬 push 에서 코드 클 라 우 드 2. 코드 클 라 우 드 WebHook 은 http 요청 을 통 해 우리 서버 에 보 냅 니 다. 3. 서버 에서 요청 을 받 았 습 니 다. pull 위탁 관리 코드 입 니 다.
단계 1: 서버 에서 ww 사용자 공개 키 를 생 성 합 니 다. (ww 사용자 와 nginx 는 같은 사용자 이 고 Nginx 는 설명 하지 않 습 니 다)www 의 신분 으로 공개 키 를 만들어 야 합 니 다. 그렇지 않 으 면 git 를 사용 할 때 검증 에 실패 합 니 다 cat /etc/passwd | grep www. 셸 이 '/sbin/nologin' 인 것 을 발견 하려 면 '/bin/bash' 로 바 꿔 야 ww 로그 인 vim/etc/passwd 수정 이 끝 난 후에 저장 su www cd ~/.ssh rm -rf ./* ssh-keygen -t rsa -C "[email protected]" cat ~/.ssh/id_rsa.pub 하고 비밀 번 호 를 설정 해 야 합 니 다. 설정 하지 않 으 면 계속 되 돌아 갑 니 다.공개 키 보기 ssh -T [email protected] 이 idrsa. pub 공개 키 를 코드 클 라 우 드 에 복사 하여 바 인 딩 을 하고 터미널 테스트 git config --global user.name "kentrl" 로 돌아 가 다시 간단하게 설정 할 수 있 습 니 다. git config --global user.email "[email protected]" vim /etc/passwd오류 가 발생 하면 ww 사용자 로그 인 을 시작 해 야 합 니 다.
단계 2: 서버 복제 코드
프로젝트 디 렉 터 리 에 들 어가 기 (ww 사용자 신분 으로) www:x:1000:1000::/home/www:/sbin/nologin//여 기 는 자신의 창 고 를 작성 해 야 합 니 다. 비밀 번 호 를 장기 적 으로 기억 하고 싶다 면 /sbin/nologin 사용자 정의 로 기억 할 수 있 습 니 다. /bin/bash//여 기 는 1 시간 을 기억 합 니 다. 단 위 는 초 수정 입 니 다. git 폴 더 는 ww 사용자 그룹 www:x:1000:1000::/home/www:/bin/bash 입 니 다.
STEP 3: git 분기 통합 시 hook 파일 무시
프로젝트 루트 디 렉 터 리 에 새 파일 git clone [email protected]:kentrl_admin/hy.git 을 만 듭 니 다. 무시 해 야 할 (파일 이름 merge = ours) hook. phop git remote add origin http:// : @gitee.com/ .git\# 합병 hook. phop 무시, 한 줄 한 줄 (줄 바 꾸 기 기억). gitignore git config credential.helper 'cache --timeout=3600'\# 무시. gitignore info. phop chown www:www -R .git\# 무시 info. phop 설정 이 효과 가 없 으 면 루트 디 렉 터 리 에서 명령 행 .gitattributes 을 실행 하여 config 설정 합 니 다.
이전 코드 가 실 패 했 을 경우 다음 코드 merge=ours 를 시도 해 보 세 요.
ww 사용 자 를 로그 인 불가 로 조정merge=ours merge=ours//www 사용자 가 nologin 으로 바 뀌 었 습 니 다.
마지막 으로 웹 훅 파일 을 서버 개발 git config merge.ours.driver true git pull origin master --allow-unrelated-histories 에 업로드 합 니 다.su root vi /etc/passwd 모든 untracked www:x:1001:1001::/home/www:/sbin/nologin 파일 버 리 기 원 격 창고 의 최신 내용 을 다운로드 하고 통합 하지 않 기 webhook ( ), pull , hook develop 또는: , , Git pull , : HEAD 를 master 최신 버 전 git clean -df git fetch 명령 은 원 격 창고 의 최신 내용 을 다운로드 하 는 것 입 니 다. git reset 명령 을 합 쳐 HEAD 를 master 최신 버 전 으로 가리 키 지 않 습 니 다.
 0) {
        switch ($data['ref']) {
            case 'refs/heads/develop':
                $name = 'hydev_yyzzu';
                $dir = '/www/wwwroot/hydev_yyzzu';
                $logdir = '/www/wwwlogs/webhook_logs/hydev_yyzzu/';
                $branch = 'develop';
                break;
            case 'refs/heads/master':
                $name = 'hy_yyzzu';
                $dir = '/www/wwwroot/hy_yyzzu';
                $logdir = '/www/wwwlogs/webhook_logs/hy_yyzzu/';
                $branch = 'master';
                break;
            default:
                //$subject = "   :     checkout  !";
                //$content = "   checkout    , push      git-hook          !     。";
                //$to = '[email protected]';
                //mail($to, $subject, $content);
                die('checkout branch error!');
        }
		
        is_dir($logdir) || mkdir($logdir, 0777, true);
        $res = PHP_EOL . 'pull start ---------------------------------------------' . PHP_EOL;
        //$res .= shell_exec("cd {$dir} && git pull origin {$branch} 2

좋은 웹페이지 즐겨찾기