学习
实践
活动
工具
TVP
写文章

自建 Gitlab+随想

前言

最近折腾了一番自建 gitlab,在此做个记录,供君参考。整个构建过程基于 Docker Swarm(近期有计划将微服务移植到 Kubernetes,但还没倒腾顺手,暂时先沿用旧的方案),主题配图与主题无关,请忽略……

1. 快速启用

配置的一般原则是先可用再优化,简单启动 gitlab 只需要一条命令:

然后就功能而言只差配置邮箱这么一步了,通过 进入容器,修改 ,添加如下配置:

接着使用以下命令让配置生效:

最后就可以进入 gitlab 控制台测试发送邮件:

除此之外还有两种配置方式,例:

以上只是简写示例,我个人并不推荐后面两种,虽然通过环境变量设置具有更高的自由度,但是配置太多了,我还是更倾向替换或者挂载配置文件的方式。

通过以上配置之后整个 gitlab 的基本功能都可用了(CI/CD 日后有空再折腾)。

2. 集成到 swarm

这一步只需要准备两个编排文件,proxy:

gitlab:

然后依次启用即可,例:

第一步优化完毕,如果不希望太折腾的话到这就可以结束了,服务的可用性方面不会有太大影响。

3. 分离缓存与数据库

我不知道 gitlab 为什么不进一步提供纯净版的镜像,而且官方推荐 omnibus 的安装方式,反正我至少不喜欢把数据库和缓存都集成到一个镜像里面,预期是构建一个子镜像并移除 nginx、postgreSQL、redis。经过一番揪心地测试之后,还是得说可惜,浪费了不少时间却没有顺利达到目的,最后只能按照官方推荐的在配置文件中禁用 postgreSQL 和 redis。

首先准备一份 db 的编排文件:

注意,postgreSQL 默认是禁用远程连接的,需要修改 ,反正是内网用,允许所有 ip 就好了 ,获取配置文件的方式:

然后就像我编排文件中示例,挂载上去就行了。

postgreSQL 默认的用户名、密码、初始数据库都是 postgres,可以通过设置环境变量更改默认配置:

最后就是就是修改 gitlab 的配置文件了:

第二步优化到此结束,启动命令:

4. 启用 SSL

如果你的情况完全符合官方文档推荐的场景,那很简单:

但一般情况下在微服务中证书呀、负载均衡呀、网关呀等都是属于外围的基础设施了,不会和应用挂钩,这种情况下更简单,因为,完全不需要任何配置。

5. 强迫症的救赎

上一节提到在目前的微服务环境下启用 SSL 不需要任何配置,那我写这节干嘛?脑残吗?好吧,是脑残,而且是添加了强迫症的脑残,先放一张图:

逼死强迫症的是什么,各位能懂吗?也许这辈子都不会用到使用 HTTP 去 clone 代码,但哥哥就是受不了这个提示,一想起来就头皮发麻,宛如被一万头草泥马来回碾压。

这个小问题让我吃不香,睡不着,都胖了好几斤,我必须要解决他。然后,我不知道当时的状态是不是已经已经在阿鼻地狱的边缘,我最开始想到的是从源代码中去寻找这个提示的逻辑,强行改成 HTTPS(失败);注入一段 js 去修改提示(有修改的延迟,仍然无法忍受);修改 nginx 的配置文件(成功)。

最后的方案是先设置 为 https(这个绕不过去),然后因为负载均衡过来的的只有 http,所以先代理到 https ,再回到 http(也可以不回),就为了抵消 的配置,最后修改下请求头就行了:

现在是不是舒服多了…以上一番测试差不多花了一天的时间,就为了这么个小玩意儿,但无论怎么样,最后有结果了还是能稍感欣慰的。

但,你以为就这么结束了吗,不,当我重新回顾了一下参考文档后,我发现了这么一段提示:

于是,我尝试着修改成这样子:

效果完全一致,这时候宛如被好几万头草泥马来回碾压,我当初为什么就没有把参考文档拉到最后面,忙活一整天却闹了个大笑话,血淋淋的教训!

结语

周六经过这么一番折腾本就很丧,又碰上 mac 扬声器坏了,心情一撸到底。然后就想着怎么去调节一下,好嘛,这一想,又冒出一堆负能量。

不知道有多少人会像我一样常常被 “自己” 掣肘,在内心层面我不算是一个很宅的人,我不喜欢呆在家里,我总是和很多人谈诗和远方,但,只局限于谈。一方面大块时间的浪费常常给我带来负罪感,因此我很少能玩得尽兴;另一方面,对于每月结余都是负数的资产状况,偶尔还得厚着脸皮问家里要,我不知道我还有什么资格去追求些什么?

想了一晚上,周日早上五点钟起来,买了张动车票准备去上海散散心,好嘛,忘了地铁没那么早开呀,又舍不得打的(倍感凄惨~),只能等到点了排队去改签(还跟插队的吵了一架,理直气壮地要插我前面,还有傻X帮忙维护,我也是见什么鬼了~)… 虽过程曲折,但结果总归不是太糟,被陆家嘴那一堆建筑震撼之后也不再那么消极了。最后,去了上海中心大厦的顶楼,在那点了杯咖啡,打了一天代码,晚上七点钟返回~

我的公众号《有刻》,我们共同成长!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180604G08QHW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码关注腾讯云开发者

领取腾讯云代金券