11、GitLab基本操作
一、GitLab简介:
GitLab 是一款开源的「代码托管 + DevOps 平台」,核心功能覆盖「代码管理、团队协作、自动化 CI/CD、项目管理」全流程,简单说就是:既可以当代码仓库(类似 GitHub、Gitee),又能一站式实现从「代码提交」到「自动构建、测试、部署」的全自动化流程。
二、GitLab组织架构与关系模型:
GitLab 中「用户(User)」「群组(Group)」「项目(Project)」是核心实体,三者通过层级化权限体系实现协作管理,关系可总结为以下结构化模型:
1、基本关系框架:
(1)、用户(User):
GitLab 的最小操作单元(人或机器人账号),拥有独立的账号密码 / Token,可被添加到「群组」或「项目」中并赋予权限。
(2)、群组(Group):
用于管理多个项目和用户的集合,相当于「部门」「团队」或「组织」,可以嵌套子群组(如 研发部 → 前端组),方便层级化管理。
(3)、项目(Project):
代码仓库的载体,必须归属于某个「用户」或「群组」(默认创建者为所有者),权限可分配给「用户」或「群组」。
2、核心关系与权限规则:
(1)、创建与归属:
- 管理员(Admin)可创建所有实体(用户、群组、项目);普通用户可创建个人项目或私有群组(取决于全局配置)。
- 项目必须归属「用户」或「群组」,群组可包含多个项目和子群组,用户可加入多个群组或直接关联项目。
(2)、权限分配逻辑:
1)、群组与用户:
- 用户加入群组时被赋予「群组级权限」,该权限默认继承到群组下的所有项目(无需单独配置)。
2)、项目与用户/群组:
- 项目可直接添加用户并赋予权限,该权限仅作用于当前项目,可覆盖用户在群组中的权限(更高或更低)。
- 项目归属群组后,自动继承群组的用户权限(即群组内所有用户按其群组角色获得项目权限),无需逐个添加。
三、基于Docker-GitLab安装部署:
1、拉取镜像:
docker pull gitlab/gitlab-ce:latest
2、创建持久化目录:
# 存放 GitLab 配置文件(如 gitlab.rb) mkdir -p /data/gitlab-data/config # 存放运行日志(如访问日志、错误日志) mkdir -p /data/gitlab-data/logs # 存放核心数据(代码仓库、数据库、缓存等) mkdir -p /data/gitlab-data/data
3、启动容器:
# 宿主机IP替换127.0.0.1 docker run -d \ --name gitlab \ --hostname 127.0.0.1 \ -p 8929:80 \ -p 2222:22 \ -v /data/gitlab-data/config:/etc/gitlab \ -v /data/gitlab-data/logs:/var/log/gitlab \ -v /data/gitlab-data/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest
4、等待容器初始化:
# 实时查看容器启动日志,首次启动需要初始化数据库、配置服务等,约 5-10 分钟 docker logs -f gitlab
5、访问GitLab并完成初始化:
(1)、访问网页(宿主机IP)
http://127.0.0.1:8929/users/sign_in
(2)、管理员账号密码:
# 账号 root # 获取密码 docker exec gitlab cat /etc/gitlab/initial_root_password # 修改密码

6、Docker-GitLab项目-HTTP克隆方式未携带端口号问题修复:

Docker 部署 GitLab 时自定义端口映射(如-p 8929:80)后,HTTP 克隆地址不带自定义端口 8929 而默认隐含 80 端口,核心是 GitLab 的external_url配置未同步该自定义端口 ——Docker 端口映射仅定义了主机与容器的访问通道,容器内的 GitLab 并不知道这个外部端口,仍按默认 80 端口生成克隆地址。
(1)相关解决方案:
# 进入运行中的 GitLab 容器 sudo docker exec -it gitlab bash # 切换到配置目录 cd /opt/gitlab/embedded/service/gitlab-rails/config # 编辑 gitlab.yml,修改 port 为 8929 vi gitlab.yml # 容器内执行,重启所有服务 gitlab-ctl restart


四、GitLab相关操作:
1、用户管理:




2、群组管理:




3、项目管理:



浙公网安备 33010602011771号