使用宝塔面板实现站点自动同步Gitee项目代码

胡洛豪    发布于 2022-06-18 18:24:07    阅读量 1042

1. 创建gitee仓库

这个方法大家应该都会,就不介绍了,如果实在不会的,可搜索我之前发布的文章

2. 添加服务器公钥

使用公钥验证,避免账号密码的烦恼


服务器公钥获取方式:

a. 连接服务器,打开命令行界面

b. 输入生成密钥命令(需提前安装好git)

ssh-keygen -t rsa -C "你的邮箱地址"

c. 需要填写秘钥查看密码可以设置为空,比较重要的项目可以设置一下

D.根据生成步骤可以看到公钥的位置,通过cat命令查看内容


cat ~/.ssh/id_rsa.pub

3.服务器git拉取代码至站点(使用ssh链接)

(PS:第一次需要手动拉取)

git clone git@gitee.com/xxx.git xxx_file


4.宝塔安装webhook插件并配置

a.软件商店搜索“ webhook ”,点击安装
b.安装完成后,点设置=》添加,填写参数
名称随便起,执行脚本如下:
(其中gitPath为你的站点目录,建议改成你的完整路径,gitHttp为你的仓库链接,$1是参数变量,可以通过GET获取)


#!/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项目路径
gitPath="/www/wwwroot/$1" // 自己的站点路径
#git 网址
gitHttp="git@gitee.com:xxx.git" //自己仓库的链接
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull 
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
else
echo "该项目路径不存在"
echo "新建项目目录"
mkdir $gitPath
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
fi

5.配置gitee仓库的webhooks

a.打开gitee仓库的webhooks添加界面

b.点击宝塔webhook“查看密钥”按钮,将获取的参数对应到gitee中,最后保存

到这里就结束,可以进行push操作来测试啦。


原创声明,本文由作者胡洛豪在“huluohao.com”个人博客上发表,原文链接https://huluohao.com/index.php/media/7.html,未经许可,不得转载。
如有您的版权,请联系我 ,本站将在三个工作日内改正。
关闭