前言
GitLab 是一个基于 Web 的 DevOps 生命周期工具,提供了 Git 代码仓库、CI/CD、项目管理等一系列功能。本文将详细介绍如何在飞牛(FeiNiu)环境中部署 GitLab,帮助你快速搭建一个私有的代码托管和协作平台。
GitLab 官网 :https://about.gitlab.com/
部署方式
使用飞牛系统提供的镜像进行安装
ce:社区版本
ee:商用版本
runner:自动化容器(挖个坑之后再填)
安装步骤

下载好之后:

勾选开机自启,个人服务器,不需要资源限制

创建存储文件路径并建立映射

这是 Docker 容器的端口映射设置,规则非常简单:
- 右边一列(容器端口) :GitLab 容器内部默认的服务端口,固定不要改,改了容器里的服务就对应不上了。
- 左边一列(本地端口):你的 NAS 宿主机对外的端口,你可以自由修改,作用是「把 NAS 的某个端口,转发到容器内部对应的服务端口上」。
简单说:外部访问 NAS 的 IP: 本地端口 → 自动转发到 GitLab 容器:容器端口。
右边三个固定的容器端口,对应 GitLab 三项核心服务:
- 容器端口 22(SSH 服务) 作用:用于
git clone/git push的 SSH 协议传输代码,是开发者常用的代码提交方式。 - 容器端口 80(HTTP 网页服务) 作用:未加密的网页访问 GitLab 管理界面,浏览器用
http://开头访问。 - 容器端口 443(HTTPS 加密网页服务) 作用:加密的网页访问,需要配置 SSL 证书后使用,浏览器用
https://开头访问。
| 本地端口(左边,自己改) | 容器端口(右边,别动) | 协议 | 说明 |
|---|---|---|---|
| 2222 | 22 | TCP | SSH 代码传输用 |
| 8080 | 80 | TCP | HTTP 网页访问用 |
| 8443 | 443 | TCP | HTTPS 加密访问用 |

网络设置直接不要动
| 模式 | 核心含义 | 特点 |
|---|---|---|
| 自定义(当前选中) | 容器使用独立的虚拟网络,通过「端口映射」和宿主机通信 | 网络隔离性好,端口可控,多容器互不干扰;需要配合端口映射使用,是最通用、最稳妥的方案 |
| Host | 容器直接共用 NAS 宿主机的全部网络,没有隔离 | 容器里的端口会直接占用宿主机的端口,不需要做端口映射;但极易和 NAS 自带服务端口冲突,隔离性差,新手不推荐 |
| 无 | 不给容器分配网络 | 容器完全不能联网,也不能被访问,GitLab 用这个直接废了,不用考虑 |
下方的网络列表
- bridge :Docker 默认的桥接虚拟网络,子网
172.17.0.0/16,所有用「自定义」模式的容器默认都接在这里,互相之间通过虚拟内网通信,对外靠端口映射暴露服务。 trim-default/idphotos_default/reference_default:你之前安装其他容器时自动生成的专属自定义网络,和 GitLab 无关,不需要勾选。

环境变量完全不要动
- PATH
- 作用:Linux 系统的「可执行程序搜索路径」,里面列的是 GitLab 内置的工具目录(比如自带的 Git、Ruby、Nginx 等核心命令的存放位置)
- 是否需要改:绝对不能改。改了容器内部会找不到 GitLab 的核心程序,直接导致启动失败,这是镜像内置的基础配置。
- LANG = C.UTF-8
- 作用:系统语言与字符编码设置,指定全局使用 UTF-8 编码
- 是否需要改:不用改。这个配置已经能保证中文文件名、中文代码、中文界面正常显示不乱码,是通用最优配置。
- EDITOR = /bin/vi
- 作用:容器内部命令行的默认文本编辑器
- 是否需要改:不用改。你日常都是通过网页使用 GitLab,几乎不会进入容器终端改文件,这个参数完全用不到。
- GITLAB_ALLOW_SHA1_RSA = false
- 作用:SSH 密钥安全开关,控制是否允许使用 SHA1 算法的 RSA 密钥进行 SSH 认证
- 是否需要改:保持
false即可。SHA1 算法早已被判定为不安全,默认禁用是正确的安全策略;只有你手里有非常老旧、仅支持 SHA1 的 SSH 密钥时,才需要改成true。
- TERM = xterm
- 作用:终端类型设置,决定命令行终端的显示格式与功能
- 是否需要改:不用改。同样是容器内部终端的参数,日常网页使用完全无影响。

功能配置不需要更改,初始化命令也不需要更改


初始化
在容器内使用该命令获取gitlab中root用户登录密码
cat /etc/gitlab/initial_root_password
点击80端口快速链接网页,用户名root,账号密码登录

设置中文


更改密码

时区设置

愉快的玩耍吧!