首页 技术杂谈正文

(黑)群辉自行托管代码-部署GitLab 系统

By无邪 技术杂谈 2020-02-02 17:02:33 740 0

一直想在(黑)群晖中配一个 私服 来备份代码。这篇文章中,我会陈述两种配置的方案,以及遇到的一些问题。

目前我的代码差不多全部保存在本地上,没有备份,找起来也麻烦,非常不安。这是我做这件事情的缘由。——我并不是担心我的私有代码会泄露(我的代码又不值钱),我觉得靠 Github 足够保证它们的安全而且还很方便,但是由于GitHub是外国的,大陆访问很慢(原因你懂的)。所以我一直想用私服代替,就是GitLab

要备份,我也想过其他选择。最终选择 Gitlab CE,主要是为了和 Gitlab.com 上的仓库能有最好的兼容。像 Gogs 就不能支持 git-lfs,虽然 官方的说法 没有错,lfs 并不是 git 标准中的东西,没必要去实现,但是它真的好用,而且既有仓库很多都是用了 lfs,自然不好替代。

自行托管的好处

  1. 性能更强劲.众所周知,黑群晖的硬件配置非常低,而 GitLab 又是重型应用程序.会经常遇到 503 的情况.

  2. 升级更简单.为虚拟机打个快照,执行官方升级程序,搞定收工.

  3. 数据更安全.不必使用非官方的迁移脚本,不必使用官方不推荐的数据库.

托管方式的选择

  1. 服务器,稳定不折腾,视各位体质点数对钱包君会造成一定程度的暴击.

  2. 家里的数据中心服务器或者长时间开机的电脑.我选择了这种的数据中心,可以获得非常快速的访问体验(穷).


搭建 Gitlab 需要一台怎样的 配置

起初我试图在我朋友送给我的小 VPS 上强行跑一个 Gitlab 起来——我自然已经看到官方给出的硬件 最低标准,双核,4G 内存。我那个小 VPS 是单核 512M 内存,但是我还是想试试。最后倒是没有直接报错,但是总之是没有跑起来。朋友给出的支持通过SWAP技术来实现,总之想想每个年的续费已经海外线路是在是慢——放弃了

后来我想道了我之前用来做数据中心的廉价蜗牛,深觉自己太过愚蠢,居然没想起来,硬件配置还可以已经满足了GitLab的基本配置,

群晖(Synology)算是 NAS 中的贵族了,但是服务也好,配套软件非常成熟,而我所用的数据中心系统就是「黑群晖」,官方的产品和苹果一样,又贵又好用。

标配蜗牛满足 4G 的内存需求,还是4核心处理器,不过我在群辉系统里运行GitLab,目前内存一直在85%左右,希望神一般的蜗牛会稳定到天荒地老~

所以这就是搭建 Gitlab 所需的硬件条件:至少双核 x86 处理器,4G 以上内存

群晖多种搭建 Gitlab 方式的选择

在群晖上跑 Gitlab 基本上就是靠 Docker 了。也有别的曲折的办法,比如直接编译源码来跑,比如装个虚拟机来跑,没必要,也肯定更折腾。

然而靠 Docker 依然是有两种途径。其一,使用现成的 Gitlab 套件。

Snipaste_2019-09-28_11-27-47.png

套件中心的 GitLab 安装后,它也会调用 Docker 来执行,并且不需要过多的干预,基本算是「开箱即用」了。

Snipaste_2019-09-28_11-27-47.png

箱即用的套件

从名字来看,这几个 Docker 映像应该是针对群晖优化过的。缺点主要是版本比较旧,以及有些地方只能接受预定的配置而不能手动控制,倒也没有什么大的问题。


第二种方法是我比较推荐的,直接在 Docker 套件中安装。Gitlab 官方有出 一个说明,详细介绍了通过 Docker 安装的步骤和方法。

具体到群晖中,首先安装 Docker 套件。

打开 Docker 后选择「注册表」,搜索「gitlab」,在结果中选择第一个 gitlab/gitlab-ce

Snipaste_2019-09-28_11-27-47.png

Docker Hub 上的 Gitlab        选择 latest 版本。

下载完成后点击「映像」,双击 gitlab/gitlab-ce:latest 来创建一个容器。

Snipaste_2019-09-28_11-27-47.png


创建一个容器

点击「高级选项」进行配置。「卷」选项卡中,新建一个文件夹,把容器中的 /var/opt/gitlab 映射出来,其他路径问题不大

Snipaste_2019-09-28_11-27-47.png

映射文件夹

「端口设置」中,为容器端口 80 指定一个本地端口,另外两个随机无妨。这个指定的端口可以填写到「常规设置」中的桌面快捷方式中。我这里映射了 1080 端口。

Snipaste_2019-09-28_11-27-47.png

其他就没什么要配置的了,直接点击启动即可

然后配置gitlab.rb文件:gitlab的配置文件 /etc/gitlab/gitlab.rb, 编辑如下:

#将url地址通过sed替换为本地ip
# egrep '^(external_url).*' /etc/gitlab/gitlab.rb         # 查看配置
external_url 'http://gitlab.example.com'# sed -ri 's#^(external_url).*#\1 "http://192.168.137.121"#'  /etc/gitlab/gitlab.rb        # sed命令修改

# egrep '^(external_url).*' /etc/gitlab/gitlab.rb        # 查看已经修改
external_url "http://192.168.0.7"

记得重启容器使修改后的配置生效!!

无论采用哪种安装方法,正常情况下,启动之后 CPU 占用会持续走高,等待数十秒到数分钟不等,CPU 占用回落后,输入http://群辉(黑的)ip地址:1080 

第一次打开网页会提示设置密码,这个设置的是 root 账户的密码,设置后记下即可。一般不使用这个账户。

此时,可以正常注册账户并使用了。我已经设置了一些东西了~~放出我的GitLab网址~~

Snipaste_2020-02-02_17-39-15.png

遇到的坑和填坑的经过

问:配置完之后,打开网页出现「502 Whoops, GitLab is taking too much time to respond.」是怎么回事?

答:刚启动时,出现这个网页表明系统还没有准备好,多等等就行了。

问:刚一进去就提示重设密码,也不提示用户名,这个密码是做什么用的?

答:这是 root 账户的密码。

问:开启容器后总是很快就自动停止,为什么?

答:这是由于文件系统权限不一致引起的,映射文件夹只留 data 而不加入 config 和 log 即可。

问:套件版 Gitlab 的 gitlab.rb 配置文件在哪里?

答:不知道,找不到。(

问:网页版终端怎么粘贴命令?

答:用鼠标,右键粘贴。

问:这样搭建的 Gitlab 可以在互联网上访问吗?

答:取决于 NAS 有没有公网 IP,如果走 Quickconnect 是不行的。但是可以尝试一下内网穿透。当然我也是移动大内网,虽然有公网IPv6,还被墙了,我现在也走内网穿透,与数据中心备份大文件的时候走P2P异地组网。




本文标题:(黑)群辉自行托管代码-部署GitLab 系统
本文链接:https://dingqidong.com/?id=130
作者授权:除特别说明外,本文由 By无邪 原创编译并授权 无邪-blog 刊载发布。
版权声明:本文使用「署名-非商业性使用-相同方式共享 4.0 国际」创作共享协议,转载或使用请遵守署名协议。

评论

关于我们
个人博客
关注本站微信号,享受更多服务!
联系方式
电话:
地址:
Email:
邮编:
Copyright ©2019-2020.Powered by©本站隶属于黎明工作室 鲁ICP备19054880号-1

鲁公网安备 37098302000619号

本站已安全运行:
召唤伊斯特瓦尔