一、搭建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-receive、update和post-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