【原创】利用gitlab多项目自动部署到多个网站目录,自动同步更新,不用插件,重写钩子
原创内容,分享请保留链接。
0.首先在服务器安装gitlab,网上一堆过程省略
1.建几个空仓库admin、web、xxxx等(1个仓库也行)。确保每个仓库名称和网站名称要有一致性,比如仓库叫admin,网站目录/www/wwwroot/admin.xxxxx.com 要包含admin。。

2.找到gitlab统一管理仓库的hooks目录 设置钩子
cd /opt/gitlab/embedded/service/gitlab-shell/hooks

3. 编辑post-receive文件,一次就可以,gitlab为了升级方便,所有仓库hooks都是软连接到这里。
vi post-receive
清空原有内容,输入以下内容 ,保存退出。$s2_value就是可变的仓库名称,这里用了数组分割,可根据目录结构自己更改
#!/bin/bash
#获取当前目录
DIR_NAME=$( cd $(dirname $BASH_SOURCE) && pwd)
#创建数组,根据/进行分割
array=(${DIR_NAME//// })
#获取最后第二个元素
s_value=${array[${#array[*]}-2]}
#创建数组,根据.进行分割
array2=(${s_value//./ }) #获取第一个元素
s2_value=${array2[0]}
#echo $s2_value
git --work-tree=/www/wwwroot/$s2_value.xxxxx.com checkout -f
4.给post-receive执行权限
chmod +x post-receive
5.将www加入git用户组
usermod -a -G git www
6.设置网站目录权限为777,有几个网站就弄几个。
chmod -R 777 /www/wwwroot/admin.xxxxx.com
ok,其他就是git通用的操作了,每次其它地方同步到服务器仓库的代码就自动到网站目录里了。
【原创】利用gitlab多项目自动部署到多个网站目录,自动同步更新,不用插件,重写钩子的更多相关文章
- Capistrano:自动完成多台服务器上新版本的同步更新,包括数据库的改变
https://baike.baidu.com/item/Capistrano/6844928?fr=aladdin Capistrano是一种在多台服务器上运行脚本的开源工具,它主要用于部署we ...
- Eclipse中的Web项目自动部署到Tomcat的webapp目录下
Eclipse中的Web项目自动部署到Tomcat 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写 ...
- 利用Powershell自动部署asp.net mvc网站项目 (一)
这一篇中我们会写一些关于自动化部署的代码.我们会使用 Powershell 书写这类代码. 你将发现这篇文章中涉及的东西非常具体,有的要求甚至相当苛刻且可能不具有通用性.这是因为部署从来都是跟环境打交 ...
- 利用Jenkins实现项目自动化部署
1.安装Jenkins,参考上一篇博客:安装Jenkins 安装Java 安装tomcat 安装maven 2.全局工具配置,填写好后点击save 3.安装git plugin插件
- git自动部署到服务器
1.现在服务器配置空仓库 mkdir -p test/project.git chmod 777 test cd test/project.git/ git init --bare . cd .. c ...
- gitlab之gitlab-runner自动部署(二)
转载自:https://blog.csdn.net/hxpjava1/article/details/78514999 简介 gitlab-ci全称是gitlab continuous integra ...
- gitlab之gitlab-ci自动部署
简介 gitlab-ci全称是gitlab continuous integration的意思,也就是持续集成.中心思想是当每一次push到gitlab的时候,都会触发一次脚本执行,然后脚本的内容包括 ...
- [后端]gitlab之gitlab-ci自动部署
转发:https://www.jianshu.com/p/df433633816b 简介 gitlab-ci全称是gitlab continuous integration的意思,也就是持续集成.中心 ...
- myeclipse + tomcat 项目自动部署
在MyEclipse中设置项目的自动部署需要综合考虑两个方面: 1是MyEclipse本身,通过主菜单中project->auto ,另一个就是tomcat配置文件.配置文件包括 conf 下的 ...
- Eclipse自动部署项目到Tomcat的webapps下的有效方法
开发JavaEE项目,常用的工具有MyEclipse,Eclipse,netBeans等,我比较喜欢用Eclipse,因为相比MyEclipse体积小很多,响应速度也快,且足以满足需求,我喜欢简洁的编 ...
随机推荐
- Vue3 的watch 监视属性
1. 监听单个 watch(变量,(新值,老值)=>{}) 2. 监听多个 watch([变量1,变量2],(新值,老值)=>{}) 3. 监听对象 watch(()=>对象,(新值 ...
- Android复习(二)应用资源 --> 颜色状态列表
转自: https://developer.android.google.cn/guide/topics/resources/color-list-resource 颜色状态列表资源 ColorSta ...
- 2021CSP复赛游记,总结与回顾
一曲起,一曲落:2021的CSP复赛也走过一个月了. 总而言之,成败只代表过去,过去不代表未来,收获满满,受益匪浅,足矣 今年,是我参加CSP的第四年,回忆当初踏入信息学的大门,跌倒过,受伤过,但从没 ...
- Python实现回数
题目:回数是指从左向右读和从右向左读都是一样的数,例如 12321,909.请利用 filter()滤掉非回数: 思路:要实现回数判断,主要是将输入的数找到其各个位置的值,然后判断前后相对应的位置是否 ...
- ES6语法特性
ES6语法特性 简介 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了. 它的目标,是使得 JavaScript 语言 ...
- 狂神说-Docker基础-学习笔记-02 Docker常用命令
狂神说-Docker基础-学习笔记-02 Docker常用命令 1.帮助命令 docker version #查看版本信息 docker info #显示docker的系统信息 docker `命令` ...
- dorado动态修改数据验证
view.get("#userDS.dataType").getPropertyDef("unitType").set("required" ...
- esp8266+MQTT+DHT11(温湿度计) platformio
esp8266 + MQTT + DHT11(温湿度计) 连线 #include <Arduino.h> #include <ESP8266WiFi.h> #include & ...
- ESP8266 + SN74HC595N(8位移位寄存器)
目录 目录 介绍 准备 连线 代码 代码优化 运行 问题 总结 介绍 使用SN74HC595N 为 ESP8266 扩展 SN74HC595N(8位移位寄存器IC) 1. Vcc 16引脚 电压输入 ...
- linux终端高级玩法详细介绍
专注于收集整理更多好玩技巧 更改终端命令行颜色 vi /etc/profile PS1='[\[\e[32m\]\u\[\e[0m\]\[\e[35m\]@\[\e[0m\]\[\e[33m\]\h\ ...