GitLab私服及CI环境搭建

        一直以来我们的代码都是托管在公共的gitlab上,代码pull/push慢,但是还能使用,所以就一直没想过去搭建gitlab私服。正好上级感觉现在发布新版本流程比较繁琐,想要简化流程,所以我就去搭建一套CI环境。虽然我以前使用Jenkins搭建过CI,但是这次我想尝试一下GitLab集成的CI,于是我在网络上查询了下GitLab-CI,发现它能够满足我的需求,正好能够一起把代码托管到内网服务器,以后访问也快的多。
        由于我们公司的机器都是window系统,所以最开始我是借助Docker for window搭建GitLab私服,结果遇到个坑(文件系统不兼容,导致GitLab服务一直在卡启动中无法访问),于是我放弃了在window上搭建GitLab的想法。我把机器重装了centos7.2 64bit系统,然后按照官方教程很顺利的安装了GitLab-ee版本(默认集成了CI),第一次访问GitLab需要重置root密码,然后到Overview下的Runner去查看token
Runner
        现在可以配置CI环境了,第一步就是去安装Runner,这个官方教程说的也很清楚,按照它的步骤就能安装成功。安装成功之后就可以把Runner注册到GitLab上,注册的时候根据提示填写信息即可。注册成功之后就可以在上图中看到一条对应的Runner记录。然后点击“编辑”,去关联项目。
在这里插入图片描述
        然后在上一步关联的项目根路径下新建.gitlab-ci.yml文件,在文件中定义CI具体流程(构建、测试、打包、部署、发布等),要保证tags与Runner的tags一致,不然不会执行
在这里插入图片描述
        在部署环节我还遇到一个坑,上面说过我是在内网搭建的GitLab,Runner也是在内网安装的,但是我们线上的服务器都是阿里云的,所以在本地打包的文件需要部署到线上服务器,这就需要文件传输,我使用的是scp命令做文件传输,可是速度非常慢,只能达到400KB/S,一个文件需要4分钟才能传输完成,一次新版本发布10个左右的文件,这样算下来还没有手工部署来的快。网上有很多人反映scp传输慢,并提出了各种方法,我尝试都不能解决我的问题,所以我直接把Runner安装在一台线上服务器,然后通过内网穿透注册到内网的GitLab服务,然后在这台外网服务安装Git/Maven服务,直接线上打包,然后通过内网传输给其他服务器。
        在外网注册Runner时我还遇到另一个坑,由于GitLab是在内网安装的,所以在安装时配置的EXTERNAL_URL是一个内网地址,导致外网Runner在拉取代码时报错,所以需要修改EXTERNAL_URL,然后重新注册Runner就没事了。另外第一次构建maven需要下载很多依赖,所以最好把job超时时间设置大些。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值