GitLab的安装、配置、使用
前言 上周去参与“中国数字经济创新发展大会”了,然后又忙新项目的事情,博客又有一段时间没有更新,今天周一事情比较少,立刻开始写文,最近有挺多值得记录的东西~ 进入正文,最近我们搭了个Gitlab,并且把正在开发的项目代码都迁移到自建的Gitlab上,整个过程还是比较流畅的~~(就是有点费内存~~ PS:立即下单给这台服务器买了四条16G内存组四通道~ 在此之前,我们团队一直使用Gitee企业版作为
目录7 个章节
前言
上周去参与“中国数字经济创新发展大会”了,然后又忙新项目的事情,博客又有一段时间没有更新,今天周一事情比较少,立刻开始写文,最近有挺多值得记录的东西~
进入正文,最近我们搭了个Gitlab,并且把正在开发的项目代码都迁移到自建的Gitlab上,整个过程还是比较流畅的~~(就是有点费内存~~
PS:立即下单给这台服务器买了四条16G内存组四通道~
在此之前,我们团队一直使用Gitee企业版作为代码管理,不过随着网络安全和信息安全管控越来越严格,加之五月份新政策加紧了对国内开源项目的管控,我们还是决定将代码放到一个更加可控的平台上比较好。
在对比了Gitea和Gitlab之后,决定使用Gitlab搭建我们团队自己的代码管理系统。
开始
Gitlab有开源免费的社区版,功能够用,如果后续需要用更多功能还可以换企业版
所以为了方便后续升级,我们选择使用企业版镜像,未激活的情况下与社区版无异,需要升级的话只要购买它的订阅即可平滑升级到企业版。
关于部署方式,云原生时代当然使用Docker~
老规矩,用我最喜欢的compose编排镜像
找一个空间足够大的盘,创建gitlab目录,然后创建docker-compose.yml文件
配置内容如下
version: "3"
services:
gitlab:
image: gitlab/gitlab-ee:latest
restart: always
hostname: gitlab
ports:
- 1100:80
- 1101:443
- 1102:22
volumes:
- /etc/localtime:/etc/localtime
- ./config:/etc/gitlab
- ./logs:/var/log/gitlab
- ./data:/var/opt/gitlab
具体端口映射规则可以自己定义,volume映射也可以改,但记得第一个/etc/localtime是固定的,把本机的时间传给gitlab镜像。
保存完在目录下执行docker-compose up就能跑起来了
首次登录
Gitlab默认管理员用户是root
密码在/etc/gitlab/initial_root_password文件里
可以进入容器内部查看
优化内存使用
Gitlab吃内存真是名不虚传啊
我们使用的这个服务器是32G内存,在默认配置下一直吃满内存,甚至在使用过程中经常出现各种5xx错误,然后一看剩余内存就几百M……
果然是内存老虎啊~
然后就尝试各种配置,经过几天的摸索,终于把内存占用控制在16G左右
修改配置文件,在Gitlab容器中,这个文件的位置是/etc/gitlab/gitlab.rb
前面我们在docker compose中做了映射,也可以在本机目录下修改./config/gitlab.rb文件
puma['worker_timeout'] = 30
gitlab_rails['time_zone'] = 'Asia/Shanghai'
puma['worker_processes'] = 2
postgresql['shared_buffers'] = "256MB"
sidekiq['max_concurrency'] = 8
postgresql['max_worker_processes'] = 4
puma['per_worker_max_memory_mb'] = 600
prometheus_monitoring['enable'] = false
sidekiq['min_concurrency'] = 8
修改完要进入容器里执行以下命令之一(重新载入配置或重启gitlab),才能使修改生效
gitlab-ctl reconfigure
gitlab-ctl restart
clone地址
刚运行起来,clone地址是这样的,这不行啊,复制下来没法直接clone到本地,需要配置一下

HTTP的域名配置比较简单,进入menu->admin->settings->general->Visibility and access controls->Custom Git clone URL for HTTP(S)
填入gitlab的网址和端口号并点击保存即可生效
不过HTTP需要登录太麻烦了,我们一般用SSH
SSH地址好像没法在前台配置,需要修改配置文件
依然是前面说的那个配置文件,修改这俩行,分别配置IP地址和端口
gitlab_rails['gitlab_ssh_host'] = 'ssh.域名或IP地址'
gitlab_rails['gitlab_shell_ssh_port'] = 1102
重新载入配置就行了~
external_url配置
这个地址的配置涉及到好几个地方,比如发送的邮件里的跳转链接,代码片段编辑的跳转链接等~
还是在配置文件里修改
找到这一行,# external_url 'GENERATED_EXTERNAL_URL'
去掉前面的#注释,把URL改成Gitlab的内网地址http://ip:1100(之前把1100映射到了80端口)
需要注意一点就是Gitlab会根据这里URL的端口来决定提供web服务的端口
所以设置了这个URL的话,要同步修改docker-compose.yml里的端口映射配置
比如这里设置了1100,那么同步docker-compose.yml修改为
ports:
- 1100:1100
搞定~
参考资料
- GitLab部署笔记(Docker):https://www.hash070.top/archives/gitlab-withdocker.html
- GitLab最新版限制内存大小puma命令:https://blog.csdn.net/m0_46542378/article/details/125344764
- GitLab修改端口和修改发邮件跳转地址的前缀:https://www.52jingya.com/aid4087
_EOF_
GitLab的安装、配置、使用
- 本文作者:
- 程序设计实验室
- 版权声明:
- 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
相关文章
code-porter 代码工作区迁移工具
换电脑几十个项目手动拷?你不是懒就是蠢。写了code-porter,自动扫描、智能打包(bundle/zip),脏仓库也能保留未提交改动,一行uvx搞定。零依赖跨平台,U盘一插完事。别问我为什么不用rsync——它懂你项目结构?
2026-05-22 · DevOps · 约 1 分钟
关于DevOps
前天写了Gitlab安装配置的文章,把之前在Gitee企业版上的大部分项目迁移到本地Gitlab管理,用着还不错~ 随着项目的规模逐渐变大以及手头上开发维护的项目逐渐变多,DevOps的重要性也逐渐凸显,目前我们开发、测试和部署的流程还是相对原始,意识到这点之后我开了一个新的博客分类(DevOps),边学边记录~ https://zh.m.wikipedia.org/zh-sg/DevOps
2022-07-21 · DevOps · 约 1 分钟
Nginx开启SSL渐进式方案
直接证书 let's encrypt nginx-proxy-manager LinuxServer SWAG
2022-11-04 · DevOps · 约 1 分钟
开启GitLab的邮件通知功能以及一些外观配置
这次把邮件功能、域名、外观啥的配置好了,写篇文章记录一下
2024-07-17 · DevOps · 约 1 分钟
讨论
共 0 条加载评论中…