在开发项目的过程中,每次代码更新后手动上传文件到服务器是一件耗时且容易出错的事情,通过宝塔面板配置Git自动部署功能,可以让服务器在检测到代码仓库更新时自动拉取最新代码,实现代码自动上线,大幅简化部署流程。
前期准备
在开始配置之前,需要先完成以下准备工作:
- 已经安装宝塔面板且可以正常登录的Linux服务器
- 服务器上安装好Git环境,若未安装可以在宝塔面板的软件商店中搜索Git进行安装
- 一个可用的Git远程仓库,比如GitHub、Gitee或者自己搭建的Git服务
- 需要部署的项目代码已经推送到上述远程仓库中
宝塔面板中配置Git自动部署
1. 创建网站并关联仓库
首先登录宝塔面板,在左侧菜单栏点击网站,选择添加站点,填写好域名、根目录等基本信息后提交。站点创建完成后,点击对应站点的设置按钮,在弹出的窗口中选择Git模块。
在Git配置页面填写相关信息:
- 仓库地址:填写你的远程Git仓库地址,比如https://gitee.com/yourname/yourproject.git
- 仓库分支:填写需要拉取的分支,一般是main或者master
- 仓库密钥:如果是私有仓库,需要填写对应的部署密钥,公有仓库可以留空
填写完成后点击保存,宝塔会自动拉取一次仓库代码到网站根目录。
2. 配置webhook触发规则
自动部署的核心是webhook,当本地代码推送到远程仓库时,远程仓库会向服务器发送一个请求,触发服务器拉取代码。在宝塔面板的Git设置页面,找到webhook配置项,复制生成的webhook地址。
以Gitee为例,打开对应的仓库页面,点击管理,选择WebHooks,点击添加WebHook,将复制的地址粘贴到URL输入框中,密码可以自定义,勾选推送事件后提交。
3. 测试自动部署功能
完成上述配置后,可以在本地修改项目代码,然后推送到远程仓库,观察宝塔面板的Git模块日志,查看是否自动拉取了最新代码。也可以在服务器网站根目录下查看文件是否更新。
如果出现拉取失败的情况,可以查看宝塔面板的Git日志排查问题,常见的问题包括仓库地址错误、密钥配置错误、webhook地址未正确配置等。
自定义部署脚本
如果拉取代码后还需要执行其他操作,比如安装依赖、重启服务等,可以自定义部署脚本。在宝塔面板的Git设置页面,找到部署脚本配置项,填写需要执行的命令即可。
比如前端项目拉取代码后需要执行npm install和npm run build,可以填写如下脚本:
cd /www/wwwroot/yourwebsite git pull npm install npm run build
常见问题排查
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| webhook触发后没有拉取代码 | webhook地址配置错误 | 检查远程仓库的webhook地址是否与宝塔生成的地址一致 |
| 拉取代码提示权限错误 | 部署密钥未正确配置 | 将服务器的公钥添加到远程仓库的部署密钥列表中 |
| 自定义脚本没有执行 | 脚本路径或者命令错误 | 检查脚本中的路径是否正确,命令是否在服务器环境中可用 |
通过以上步骤,就可以完成宝塔面板Git自动部署的配置,后续代码更新只需要推送到远程仓库,服务器就会自动完成代码拉取和更新,大幅提升部署效率。