GitLab 是一个开源的、基于 Web 的 Git 仓库管理系统,提供代码仓库托管、团队协作、CI/CD 持续集成等全套研发功能。它完整覆盖 DevOps 全生命周期,包含代码版本控制、合并请求、自动化构建、部署监控等能力。GitLab 采用一体化平台架构,无需搭配多款第三方工具,团队可在同一平台完成开发、审核、运维工作,大幅提升开发效率与代码规范度。
采用 Docker Compose 方式部署,镜像使用官方稳定版 gitlab/gitlab-ce:18.10.5-ce.0,适配当下主流服务器环境,部署简单、可移植性强,适合个人学习与中小型企业私有化部署。
新建部署目录,创建 docker-compose.yml 配置文件
注意:千万不要忘记修改为自己的 IP 地址
services:
gitlab-ce:
image: "gitlab/gitlab-ce:18.10.5-ce.0"
container_name: gitlab-ce
ports:
- "80:80"
# 容器 22 端口用于 SSH 免密拉取推送,与宿主机 SSH 22 端口冲突,映射为 2222
- "2222:22"
environment:
# 内网访问 IP,需保证服务器固定 IP,不可随意改动
# 注意修改为你自己的 IP
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.60.136'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
restart: always
volumes:
- ./config:/etc/gitlab
- ./logs:/var/log/gitlab
- ./data:/var/opt/gitlab
# 解决部署启动报错、共享内存不足问题
shm_size: 256m先创建数据卷目录 data 并配置权限
mkdir data
chmod 755 data在配置文件同级目录,执行后台启动命令:
# 后台启动容器
docker-compose up -d
# 查看启动日志,观察初始化进度
docker-compose logs -f注意:GitLab 硬件要求较高,最低配置建议 4 核 CPU + 8 GB 内存;首次启动初始化耗时较长,需等待 5 ~ 10 min,日志无报错、页面可正常访问即为启动成功。

当日志出现如下内容表示启动成功


GitLab 初始密码仅保留 24 h,过期自动失效,部署完成后立即执行命令获取密码:
docker exec -it $(docker ps | grep gitlab | awk '{print $1}') grep 'Password:' /etc/gitlab/initial_root_password访问地址:服务器内网 IP
默认账号:root
默认密码:上述命令查询到的初始密码

点击右上角头像,选择 preferences偏好设置;

找到 Localization 语言区域,下拉选择简体中文

保存设置,刷新页面即可生效

【用户设置】-【Access】-【密码】

密码强制要求,我在这里设置为 git123..$
企业 / 内网私有化部署中,禁止陌生用户注册,仅由管理员手动创建账号,操作步骤:
【管理区域】-【设置】-【通用】-【注册限制】

Guest(访客):仅可创建议题、发表评论,无代码仓库读写权限;
Reporter(报告者):可克隆查看代码,禁止提交推送,适配测试、产品人员;
Developer(开发者):可拉取、开发、提交、推送代码,适配普通研发人员;
Maintainer(维护者):可创建项目、管理分支、合并代码、新增成员,适配项目负责人;
Owner(拥有者):最高权限,可删除项目、迁移仓库、管理全部成员,适配团队负责人。
如果没有【群组】需要先创建群组

点击右上角 + 号创建项目



代码克隆成功后将之前的代码提交到仓库

使用 IDEA 提交代码需要生成一个访问令牌,这个窗口是自动弹出来的

点击上图中的【生成】会自动跳转到【个人访问令牌】界面,无需修改配置,直接点击【生成令牌】即可

复制令牌到 IDEA 中,点击【登录】就可以在【IDEA】中提交代码了

CI/CD 流水线追求无人值守自动化,需频繁拉取、推送代码,无法人工输入账号密码。配置 SSH 密钥采用非对称免密认证,替代明文密码登录,适配 Jenkins/GitLab 等 CI 工具自动执行构建、部署流程
点击【管理员】-【用户】-【自己】-【编辑】

修改成一个合法的邮箱地址即可

打开 Linux 终端,执行密钥生成命令
注意:一般会有专门的部署服务器,本次演示我们先在实际部署项目的虚拟机中创建,我们的虚拟机是 Ubuntu Service
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # 邮箱替换为你的 GitLab 注册邮箱命令执行后按提示操作
密钥保存路径:默认 ~/.ssh/id_rsa 直接回车
一路回车即可

生成成功后,在 ~/.ssh/ 目录下会生成两个文件
id_rsa 私钥:绝对保密,不可泄露
id_rsa.pub 公钥:需添加到 GitLab 账户
使用命令 cat ~/.ssh/id_rsa.pub 查看密钥

点击【右上角头像】-【偏好设置】-【左侧菜单 SSH 密钥】-【添加新密钥】

粘贴公钥并保存
在【密钥】文本框粘贴完整公钥内容
填写【标题】(如 "Ubuntu Service",便于识别)
点击【添加密钥】完成添加

进入 GitLab 仓库页面 → 点击【代码】按钮 →【使用 SSH 克隆】→ 复制地址

克隆仓库到本地
git clone ssh://git@192.168.203.134:2222/lusifer/myproject.git首次连接会提示确认主机指纹,输入 yes 并回车

此时应该看到代码已成功拉取
