gitlab自动同步代码到web站点

发布时间:2021/08/10 作者:天马行空 阅读(1263)

先基于宝塔安装好《GitLab中文社区版》,安装过程及仓库创建不再详述,自行参考其他安装文档。


1、进入网站目录,克隆仓库代码

cd /www/wwwroot/
git clone http://192.168.3.141:8099/liujuncheng/test.git test
chmod -R 777 test
chown -R www:www test


2、设置git自动更新的钩子文件

cd /var/opt/gitlab/git-data/repositories/liujuncheng/test.git/hooks
vi post-receive

#文件内容,将原有的文件备份,并清空写入以下文件内容

#!/bin/bash
#获取当前目录
DIR_NAME=$( cd $(dirname $BASH_SOURCE) && pwd)
#创建数组,根据/进行分割
array=(${DIR_NAME//// })
#获取最后第二个元素
s_value=${array[${#array[*]}-2]}
#创建数组,根据.进行分割
array2=(${s_value//./ })

#获取第一个元素
s2_value=${array2[0]}
#echo $s2_value
#git --work-tree=/www/wwwroot/$s2_value checkout -f
git --work-tree=/www/wwwroot/$s2_value clean -fd
git --work-tree=/www/wwwroot/$s2_value checkout --force

sudo chown -R www.www /www/wwwroot/$s2_value
sudo chmod -R 777 /www/wwwroot/$s2_value



3、设置钩子文件的执行权限

chmod +x post-receive



4、将git用户放入www用户组

usermod -a -G www git


5、让git无密码sudo

vi /etc/sudoers
#追加写入
git ALL=(ALL) NOPASSWD: ALL


关键字gitlab git