搭建内部开发git服务器并使用hook实现自动部署
来源:互联网 发布:java string类getchars 编辑:程序博客网 时间:2024/05/29 16:33
因为公司需要在本地服务器上做项目测试,利于多人开发,为了方便开发人员自己自动部署项目,我直接搭一个git服务器,并且使用git钩子实现本地自动同步开发人员上传的代码,通过docker挂载到合适的docker容器上。这样开发人员git push后,挂载在docker上的项目目录自动同步。
1.搭建本地裸仓库
建议将仓库和挂载目录放在同一个目录下比较方便,反正docker也对挂载目录没什么限制。这里举例仓库是/home/pig/repo/,挂载目录是/home/pig/projects/;
进入/home/pig/repo/目录,执行git init --bare pig.git,会在本地生成一个pig.git裸仓库,接下来两种操作,一是让程序员自己git clone这个裸仓库到本地,然后在本地进行开发;二是如果程序员已经自己建好仓库并且写好代码,可以直接让他们push到我们的裸仓库实现同步。(注意两点:第二种情况需要保证pig.git是裸仓库,裸仓库的定义不是指工作目录为空,而是建好后没有任何操作,否则程序员会推不上去代码);
2.程序员本地生成Id_rsa.pub并交给管理员,管理员将公钥添加到pig用户的.ssh下的known_hosts文件,反正就是一个认证文件。程序员本地添加远程源,git remote add origin pig@server_ip:/home/pig/repo/pig.git/,然后自己push本地仓库。如果说程序员之前自己clone了pig.git仓库,那么会git会自动添加remote源,不需要git remote add,直接做完add,commit操作后push即可或者pull;
3.git仓库自动将改动同步到projects目录,首先进入/home/pig/projects目录下,执行git clone /home/pig/repo/pig.git,之后会在当前目录下生成pig目录。然后切换到/home/pig/repo/pig.git/hooks,复制post_update.samlp为post_update,添加x权限,编辑post_update:
其实这个也是参照了别人的,原版还有git init、remote add操作,但是我们这里已经事先clone过了,这些命令就没有必要了。unset GIT_DIRDIR_ONE=/home/pig/projects/pig/cd $DIR_ONEgit pull origin master
这样当程序员修改并push到本地/home/pig/repo/pig.git仓库后,仓库发现改变会将改动同步到我们的/home/pig/projects/pig项目;
4.docker挂载/home/pig/projects/pig到一个容器中,我们给程序员一个端口,这样以后他们push后就可以直接通过端口测试自己的代码实现。对于测试网站程序还是挺方便的。
- 搭建内部开发git服务器并使用hook实现自动部署
- 185 git 使用 Git Hook 实现网站的自动部署
- 使用 Git Hook 实现网站的自动部署
- 使用 Git Hook 实现网站的自动部署
- git hook实现代码自动部署
- 搭建git服务器及利用git hook自动布署代码
- 使用git进行web开发跟踪管理,并自动部署
- git hook远程仓库实现网站的自动部署
- GIT服务器实现web代码自动部署
- GIT服务器实现web代码自动部署
- 搭建服务器上的GIT并实现自动同步到站点目录(www)
- 搭建服务器上的GIT并实现自动同步到站点目录(www)
- 搭建服务器上的GIT并实现自动同步到站点目录(www)
- 搭建服务器上的Git并实现自动同步到站点目录(www)
- 203 git hook 一次自动部署实践
- ubuntu14.04搭建git服务器、远端仓库、自动部署
- Git-搭建Git服务器并使用Git进行协同工作
- git码云配置web hook钩子实现自动部署,git权限等问题,LAMP
- eclipse使用小技巧集锦
- 剑指offer题目的Java实现
- 【机器学习笔记之四】Adaboost 算法
- 漫谈协方差矩阵
- 接口的实现
- 搭建内部开发git服务器并使用hook实现自动部署
- 认老乡
- Asp.net 连接sql server使用域用户方法
- Qt Installer Framework
- 考试前十题答案
- Whack-a-mole(打地鼠)
- 离线情报分析工具CaseFile
- [题解]codeforces413e Maze 2D
- 迭代器模式