11、GitLab基本操作

一、GitLab简介:

GitLab 是一款开源的「代码托管 + DevOps 平台」,核心功能覆盖「代码管理、团队协作、自动化 CI/CD、项目管理」全流程,简单说就是:既可以当代码仓库(类似 GitHub、Gitee),又能一站式实现从「代码提交」到「自动构建、测试、部署」的全自动化流程。

极狐GitLab中文文档

 

二、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

# 修改密码

1.1

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

1.2

 

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

1.3

1.4

 

四、GitLab相关操作:

1、用户管理:

 2

3

4

5

2、群组管理:

6

7

9

10

3、项目管理:

10(2)

11

12

 

posted on 2025-12-24 11:17  爱文(Iven)  阅读(6)  评论(0)    收藏  举报

导航