使用宝塔的git配合webhook实现自动拉取代码
2021-04-06 本文已影响0人
这真的是一个帅气的名字
下载
image.png我这个安装卸载好几次了,卡在“配置”这块
解决办法:停止安装
然后登录服务器命令行运行
chmod 755 /www/server/panel/install/gitlab.sh & /www/server/panel/install/gitlab.sh install
安装之后宝塔后台gitlab也会是已安装状态
完成之后切记服务器一定要开放8099端口
打开gitlab
点击这个访问地址即可
image.png 修改密码 登录之后把C盘下的公钥粘贴在此
新建项目
项目添加成员
本地部署
此步骤我换了个其他成员账号,按照实际工作多人协同模拟
本地创建仓库 git小乌龟神器
上传成功
image.png
到此为止,基本的版本控制已经可以了,但是想实现本地改了代码,线上项目也要同步修改,宝塔是有这个服务的,但是收费,对于白嫖的人来说,下面的才是正菜!
1 安装好git之后,在服务器上生成一个密钥,服务器是可以生成多个密钥的哦
ssh-keygen -t rsa -C "your@email.com" -f ~/.ssh/id_rsa_new
查看密钥
cat ~/.ssh/id_rsa_new.pub
2 然后把密钥放入到项目的仓库中
image.png3 第一次先手动在项目目录中操作一下git命令
cd /www/wwwroot/ 下 //使用git克隆
git clone http://主机地址/项目名称.git //具体在项目中可以看到,选择http的链接
git config --global user.name "用户名"
git config --global user.email "邮箱"
git config --global credential.helper store
//会生成.gitconfig 的文件,查看
cat ~/.gitconfig //显示内容
[user]
name = 输入的用户名
email = 输入的邮箱
[credential]
helper = store
//第一次pull会提示输入用户名密码
[root@iZ25mi9h7ayZ test]# git pull
//根据提示输入用户名
//根据提示输入邮箱、密码(不显示)
cat ~/.git-credentials //生成.git-credentials 隐藏文件
image.png
4 配置webhook
先输入一个#,然后点击编辑再输入下面的脚本
image.png
#!/bin/bash
echo "================================================================"
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then
echo "param参数错误"
echo "End"
exit
fi
#git项目路径($1是param后面的参数,指向你的服务器的目录)
gitPath="/www/wwwroot/$1"
#git 网址 (替换成你的git地址)
gitHttp="http://主机地址/zheng/$1.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
echo "git clone $gitHttp gittemp"
git clone $gitHttp gittemp
mv gittemp/.git .
rm -rf gittemp
fi
#拉取最新的项目文件
echo "拉取最新项目文件"
#git reset --hard origin/master
git pull
#设置目录权限
chown -R www:www $gitPath
echo "End"
exit
else
echo "该项目路径不存在"
echo "End"
exit
fi
在这试实际情况,可能需要重启一下宝塔面板,不是重启服务器哦
5 gitlab配置git钩子
点击查看密钥按照提示修改 执行结果