window使用scm-manager+java搭建git服务器并使用hook实现网站自动部署
前言
docker中安装scm-manager搭建git服务器,并实现网站自动部署
ubuntu使用scm-manager+java搭建git服务器并使用hook实现网站自动部署
window使用scm-manager+java搭建git服务器并使用hook实现网站自动部署
在window下搭建git服务器效率虽然没有linux下面高,但有很多种情况我们需要这么做,于是就有啦这篇文章
windows下的git服务器搭建知道的有两种组合copssh+git和scm-manager+java后者要简单一些建议使用
copssh+git的搭建请参考文章
windows下安装copssh+git+tortoiseGit服务器 (win2008rc 64 win7 64位)
win2008r2 64位
需要的软件
scm-server-1.50-app.zip
jre-8u65-windows-x64.exe
git.exe 64
补充说明:
2017-05-16 测试 scm-server-1.52-app.zip 安装完成后出现500错误 scm-server-1.50-app.zip scm-server-1.51-app.zip这两个版本正常
第一步安装GIT服务器
首先安装jre运行环境并且配置好(直接安装jre文件就可以,默认安装的时候就会配置好java的环境变量)
到scm-manager的官网下载压缩包如下图:
把文件解压到你想放的位置,注意不要有中文,然后右键管理员打开scm-server.bat文件启动git服务
出现一个滚动的命令行窗口,不要关闭,默认会在8080端口开一个web服务,直接在浏览器中输入 http://localhost:8080/scm就可以打开管理界面
到此使用git服务器的时候只要运行下就可以啦,也可以把它安装成windows的服务进程,开机直接启动,直接在这个目录下面打开命令行输入下面命令安装为服务
scm-server.bat install
卸载服务使用下面命令
scm-server.bat uninstall
默认用户名和密码都为scmadmin管理界面如下,在里面首先选择repository Types 设置git代码的存放位置
第二步添加自己的git仓库
然后选择 Repositories 添加一个git库名字为siee,添加成功后如下图,
后面那个url就是git的clone地址,里面可以添加用户设置权限等功能,这个时候一般就可以使用啦,在本地安装一个tortoisegit把git的url地址直接填进去就可以clone代码下来同时也可以提交。可以直接绑定一个域名到服务器实现远程访问git仓库
在windows2008服务器上因为默认开启的有防火墙,所有开启的8080端口服务防火墙没有放行,所以可能会出现在外网通过域名访问不了的情况,这个时候需要在防火墙中添加一个入站规则,
打开防火墙,选择高级
选入站规则,新建规则,端口
下一步
继续到最后起一个名字比如 scm-mananer等
再次从外网域名访问,应该就可以啦
最后一步利用hook实现网站的自动部署
假如我们的网站部署在 D:/www/siee,我们希望有代码post上来后直接同步到这个目录里,
准备工作
上面的siee仓库创建好后直接到D:/www这个目录下,按下shift+鼠标右键菜单里有个此处进入cmd打开cmd输入
git clone http://www.你的域名.com:8080/scm/git/siee
会创建一个siee目录并把siee仓库的代码给克隆到siee目录下面
一般部署时会有两个版本开发版本上线版本,可以克隆对应的版本
克隆开发版本或上线版本只需加上对应的分支(添加上用户名和密码可以省得再次输入),如下是科隆开发版本的代码
git clone -b dev http://用户名:密码@www.你的域名.com:8080/scm/git/siee
然后就需要当有push提交的话就把代码同步到这里,需要使用pull操作来拉取合并提交上来的代码
GIT仓库同步hook设置
在上面配置git服务器的时候有配置过git仓库的位置,找到刚刚创建的仓库的位置,例如在D:\.scm\repositories\git\siee
siee就是上面刚刚创建的git仓库,打开后有个hooks目录
打开hooks目录创建一个文件名为post-receive.bat,输入下面内容
echo "post-receive" cd /d D:\www\siee call git pull http://用户名:密码@www.你的域名.com:8080/scm/git/siee dev exit 0
上面是拉取开发分支的代码,如果也想同步上线版本或其它分支的代码时只要在后面继续添加pull对应的分支命令即可
在本地修改一些文件然后push提交上去后如图:
创建的post-receive.bat已经被调用啦,并且代码同步到啦对应的部署目录