宝塔面板gitlab+php实现代码自动同步到web目录

本文详细介绍了如何在服务器上搭建GitLab,包括解决IP地址问题、重启GitLab服务、以及使用customhooks实现代码提交后自动部署到web目录的过程。涉及pre-receive、update和post-receive钩子脚本的配置和权限设置。
摘要由CSDN通过智能技术生成

一、搭建gitlab

       1. 宝塔的软件商店中可以直接下载

        2. gitlab可能会出现ip地址与本机地址不一致问题

                vim /etc/gitlab/gitlab.rb 更换gitlab的ip地址为自己服务器地址

                

        3.重启GitLab: gitlab-ctl restart

        4.重启时可能遇到niginx启动失败的问题

        输入命令解决                

cp /opt/gitlab/embedded/sbin/gitlab-web /opt/gitlab/embedded/sbin/nginx

        这样就可以进行gitlab使用了

二、代码提交自动部署到web目录

        1.这里使用的是custom hooks

        官方文档:https://docs.gitlab.com/ce/administration/server_hooks.html

        2.custom hooks是 Git 原生 hook,包括:pre-receiveupdatepost-receive三种类型的钩子脚本,按作用域划分,custom hooks可细分两种:单仓库钩子全局钩子

        3.单仓库钩子:

                3.1找到仓库的目录

                3.2在仓库xxx.git目录下创建custom_hooks 子目录

                3.3在custom_hooks目录下创建脚本文件(如post-receive)

例如:

注意:gitlab仓库地址储存是hash码要找到仓库对应的hash码

        4.全局钩子

                4.1进入 /opt/gitlab/embedded/service/gitlab-shell/hooks 目录

                4.2创建pre-receive.d, post-receive.d, or update.d 子目录

                4.3在子目录中创建脚本文件(如pre-receive)

        5. 编写post-receive脚本内容

#!/bin/sh
git --work-tree=/www/wwwroot/你的目录 checkout -f   

        6.在hook文件夹下执行命令

chown git:git post-receive
chmod +x post-receive

        7.设置web目录的操作权限为777

gitlab在hook脚本中可使用的环境变量可参考variable

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值