git实现代码提交自动部署到相应的web服务器


现在想实现在本地对web代码push之后就将代码同步到线上的web服务器,这样就可以直观的看到效果了。百度和Google有很多的实现的方法,不过不知道是环境的原因还是别的原因,按照这些方法始终没有成功,经过测试下面简单的将实现方法分享下。

我的做法是先登录到我的gitlab的服务器(我们的代码由gitlab进行统一的管理),找到我自己的一个test的项目。

环境说明:

gitlab(10.212.118.56)

webserver(192.168.1.1)

1、首先在gitlab的server中clone一个项目

gitlab服务器中存放代码的目录为(/git/gitlab/apps/gitlab/repositories/xuejinliang/test.git/),此处是我自己的一个test的项目。

2、在server中的/tmp中

git clone /git/gitlab/apps/gitlab/repositories/xuejinliang/test.git/

之后编写hook函数,找到test.git项目的hook文件所在位置

cd /git/gitlab/apps/gitlab/repositories/xuejinliang/test.git/hooks

cat >post-receive <<EOF

#!/bin/bash

unset GIT_DIR

Deploy_Dir=/tmp/test/

remote_dir=/gago/web/test

cd ${Deploy_Dir}

git pull

#/bin/rsync -auzvP --delete /tmp/test/   serverip:/gago/web/test

#ssh root@42.159.145.166 <<EOF

#chown -R www.www /gago/web/test

EOF

后面的三行代码我加上了注释发现,因为在利用Mac端的工具source-tree进行提交的时候,发现rsync会报错,所以我单独的将此rsync写成了一个脚本然后每分钟执行一次,这样就会将同步好的代码同步到web服务器了。(rsync提前做好了免密码操作,基于ssh)。

下面的是rsync的报错

remote: rsync: connection unexpectedlyclosed (0 bytes received so far) [sender]       

remote: rsync error: unexplained error (code255) at io.c(605) [sender=3.0.9]

百度Google了下没看解决,希望有同样经验的同学分享下。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值