GitLab CE下载、安装和使用教程

GitLab CE 详细下载、安装和使用教程

GitLab 是一个基于 Git 的、功能强大的代码托管、版本控制、DevOps 平台。它提供了一个集中的位置来管理代码仓库、进行代码审查、跟踪问题、运行 CI/CD 流水线,以及更多。GitLab 有两个主要版本:

  • GitLab CE (Community Edition):社区版,是免费开源的版本,适合个人开发者、小型团队和开源项目。
  • GitLab EE (Enterprise Edition):企业版,提供更多高级功能,如高级搜索、权限管理、安全扫描、合规性等,需要付费。

本教程将重点介绍 GitLab CE 的下载、安装和使用。

一、GitLab CE 下载

GitLab CE 的下载方式有多种,取决于你的操作系统和偏好。

1. 官方推荐:使用 Omnibus 包(推荐)

Omnibus 包是 GitLab 官方推荐的安装方式,它将 GitLab 及其所有依赖项(如 Ruby、PostgreSQL、Redis、Nginx 等)打包在一起,简化了安装和升级过程。

  • 优点:简单、快速、可靠,包含所有依赖项,自动配置。
  • 缺点:安装包较大,自定义配置相对复杂。

支持的操作系统

  • Ubuntu (18.04, 20.04, 22.04)
  • Debian (10, 11)
  • CentOS (7, 8)
  • AlmaLinux 8
  • Rocky Linux 8
  • Oracle Linux 8
  • Red Hat Enterprise Linux (RHEL) 8 (需要启用 EPEL 仓库)
  • openSUSE Leap 15.4
  • SUSE Linux Enterprise Server (SLES) 12 SP5 & 15 SP4
  • Raspberry Pi OS (基于 Debian)

下载步骤

  1. 添加 GitLab 仓库(以 Ubuntu 20.04 为例)

    bash
    curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

    其他系统的添加仓库命令,请参考 GitLab 官方文档:https://about.gitlab.com/install/

  2. 安装 GitLab CE

    bash
    sudo apt-get update
    sudo apt-get install gitlab-ce

2. 从源代码安装

从源代码安装 GitLab CE 较为复杂,需要手动安装和配置所有依赖项,适合对 Linux 系统管理有深入了解的用户。

  • 优点:完全自定义,可以控制每个组件的版本。
  • 缺点:安装过程复杂,耗时,容易出错。

不建议初学者使用此方法。如果您需要从源代码安装,请参考 GitLab 官方文档:https://docs.gitlab.com/ee/install/installation.html

3. 使用 Docker 安装

Docker 安装方式是将 GitLab CE 运行在 Docker 容器中,方便部署和管理。

  • 优点:隔离性好,环境一致,易于部署和迁移。
  • 缺点:需要熟悉 Docker 的使用。

安装步骤

  1. 安装 Docker

    参考 Docker 官方文档进行安装:https://docs.docker.com/engine/install/

  2. 拉取 GitLab CE 镜像

    bash
    docker pull gitlab/gitlab-ce:latest

  3. 运行 GitLab CE 容器
    bash
    sudo docker run --detach \
    --hostname gitlab.example.com \
    --publish 443:443 --publish 80:80 --publish 22:22 \
    --name gitlab \
    --restart always \
    --volume $GITLAB_HOME/config:/etc/gitlab \
    --volume $GITLAB_HOME/logs:/var/log/gitlab \
    --volume $GITLAB_HOME/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest

    • --hostname: 设置GitLab的域名或IP。
    • --publish: 端口映射,分别映射HTTPS(443)、HTTP(80)和SSH(22)端口。
    • --name: 容器名称。
    • --restart: 容器重启策略。
    • --volume: 数据卷挂载,将容器内的配置、日志和数据目录映射到宿主机,以便持久化存储。

4. 其他安装方式

除了以上方式,还可以使用 Helm Chart 在 Kubernetes 上安装 GitLab CE,或者使用云服务商提供的 GitLab 镜像(如 AWS Marketplace、Google Cloud Marketplace 等)。

二、GitLab CE 安装(以 Omnibus 包为例)

本节以 Ubuntu 20.04 系统为例,详细介绍使用 Omnibus 包安装 GitLab CE 的步骤。

  1. 准备工作

    • 确保系统已安装 curlopenssh-serverca-certificatespostfix(用于发送邮件通知)。如果没有,请先安装:

      bash
      sudo apt-get update
      sudo apt-get install -y curl openssh-server ca-certificates postfix

    • 在安装 postfix 时,会弹出一个配置界面,选择 "Internet Site",然后输入你的服务器的域名。

  2. 添加 GitLab 仓库

    bash
    curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

  3. 安装 GitLab CE

    bash
    sudo EXTERNAL_URL="http://gitlab.example.com" apt-get install gitlab-ce

    * EXTERNAL_URL:设置 GitLab 的访问 URL,将其替换为你自己的域名或 IP 地址。如果你的服务器没有域名,可以使用 IP 地址。 如果你稍后需要更改 URL,请务必重新配置 GitLab。

  4. 配置和启动 GitLab

    安装完成后,GitLab 会自动进行配置和启动。如果安装过程中没有设置 EXTERNAL_URL,你需要手动配置:

    bash
    sudo gitlab-ctl reconfigure

  5. 访问GitLab
    打开浏览器,输入你在 EXTERNAL_URL 中设置的域名或 IP 地址,即可访问 GitLab。

  6. 首次登录

    首次访问 GitLab 时,系统会要求你设置 root 用户的密码。设置一个强密码,并牢记。然后使用用户名 root 和你设置的密码登录。

三、GitLab CE 使用教程

1. 用户界面

GitLab 的用户界面简洁直观,主要分为以下几个部分:

  • 顶部导航栏:包含项目、群组、活动、里程碑、代码片段等链接,以及搜索框和用户菜单。
  • 侧边栏:根据当前所在页面显示不同的内容,如项目概览、仓库、问题、合并请求、CI/CD、Wiki 等。
  • 主内容区:显示具体的内容,如项目列表、代码文件、问题详情等。

2. 创建项目

  1. 点击顶部导航栏的 "+" 图标,选择 "New project/repository"。
  2. 选择 "Create blank project"。
  3. 填写项目信息
    • Project name:项目名称。
    • Project slug:项目路径,通常自动生成。
    • Project URL: 可选择,如果需要更改,请点击进行配置。
    • Project description (optional):项目描述。
    • Visibility Level:可见性级别,可选 Private(私有)、Internal(内部)或 Public(公开)。
    • Initialize repository with a README:是否使用 README 文件初始化仓库。
  4. 点击 "Create project"。

3. 克隆项目

  1. 在项目页面,点击 "Clone" 按钮。
  2. 选择 "Clone with HTTPS" 或 "Clone with SSH"。
    • HTTPS:使用用户名和密码进行身份验证。
    • SSH:使用 SSH 密钥进行身份验证,更安全,推荐使用。
  3. 复制克隆 URL。
  4. 在本地终端,使用 git clone 命令克隆项目

    bash
    git clone <克隆 URL>

4. 添加、提交和推送代码

  1. 在本地项目目录中创建或修改文件。
  2. 使用 git add 命令将文件添加到暂存区

    bash
    git add . # 添加所有修改的文件
    git add <文件名> # 添加指定文件

  3. 使用 git commit 命令提交更改

    bash
    git commit -m "提交信息"

  4. 使用 git push 命令将本地提交推送到 GitLab 服务器

    bash
    git push origin <分支名> # 通常是 master 或 main

5. 创建分支

  1. 在项目页面,点击 "Repository" -> "Branches"。
  2. 点击 "New branch" 按钮。
  3. 填写分支名称,选择基于哪个分支创建,然后点击 "Create branch"。
  4. 在本地使用 git checkout切换到新分支:
    bash
    git fetch origin
    git checkout -b <新分支名> origin/<新分支名>

6. 创建合并请求(Merge Request)

  1. 在项目页面,点击 "Merge requests" -> "New merge request"。
  2. 选择源分支(你要合并的分支)和目标分支(要合并到的分支)。
  3. 填写合并请求的标题和描述,指派审核人,添加标签等。
  4. 点击 "Create merge request"。

7. 代码审查

  1. 审核人收到合并请求通知后,可以查看代码变更,添加评论,提出修改意见。
  2. 提交者根据评论修改代码,并再次推送。
  3. 审核人确认代码无误后,可以批准合并请求。

8. 合并分支

  1. 合并请求被批准后,可以点击 "Merge" 按钮将代码合并到目标分支。
  2. GitLab 会自动进行合并,如果存在冲突,需要手动解决。

9. 问题跟踪(Issues)

  1. 在项目页面,点击 "Issues" -> "New issue"。
  2. 填写问题的标题和描述,指派处理人,添加标签等。
  3. 点击 "Create issue"。
  4. 问题可以在列表中查看,进行讨论,分配,关闭等操作。

10. CI/CD

GitLab CI/CD 是 GitLab 的内置持续集成和持续交付/部署功能。

  1. 在项目根目录创建 .gitlab-ci.yml 文件。
  2. 在该文件中定义 CI/CD 流水线的各个阶段(stages)和任务(jobs)。
  3. GitLab 会根据 .gitlab-ci.yml 文件的配置,自动运行 CI/CD 流水线。

.gitlab-ci.yml 示例:

```yaml
stages:
- build
- test
- deploy

build_job:
stage: build
script:
- echo "Building the project..."
- # 构建命令

test_job:
stage: test
script:
- echo "Running tests..."
- # 测试命令

deploy_job:
stage: deploy
script:
- echo "Deploying the project..."
- # 部署命令
only:
- master
```

11. 其他功能

GitLab 还提供了许多其他功能,如:

  • Wiki:用于编写项目文档。
  • Snippets:用于分享代码片段。
  • Releases:用于发布项目版本。
  • Container Registry:用于存储 Docker 镜像。
  • Packages:用于存储软件包。
  • Metrics:用于监控项目和 CI/CD 流水线的性能。
  • Security & Compliance: 用于扫描代码中的安全漏洞

四、常见问题及解决方法

  1. 忘记 root 密码

  2. GitLab 无法访问

    • 检查 GitLab 服务是否正在运行。
    • 检查防火墙是否阻止了 GitLab 的端口(80、443、22)。
    • 检查域名或 IP 地址是否配置正确。
    • 检查 GitLab 的日志文件,查看是否有错误信息。
  3. GitLab 运行缓慢

    • 检查服务器的资源使用情况(CPU、内存、磁盘 I/O)。
    • 增加服务器的资源。
    • 优化 GitLab 的配置,如调整 Unicorn worker 进程数、数据库连接数等。
    • 清理 GitLab 的缓存。
  4. Git clone 失败

    • 检查网络连接是否正常。
    • 检查 GitLab 服务器是否可访问。
    • 检查用户名和密码是否正确(使用 HTTPS 克隆时)。
    • 检查 SSH 密钥是否配置正确(使用 SSH 克隆时)。
  5. Git push 失败

    • 检查本地是否有未提交的更改。
    • 检查是否有权限推送到目标分支。
    • 检查远程仓库是否已满。
    • 检查是否有冲突需要解决。

总结

本教程详细介绍了 GitLab CE 的下载、安装和使用,涵盖了从基础操作到高级功能的各个方面。希望通过本教程,你能够快速上手 GitLab,并将其应用到你的开发工作中。GitLab 是一个功能强大的工具,熟练掌握它可以大大提高你的开发效率和团队协作能力。

记住,GitLab 的官方文档是最好的学习资源,遇到问题时,请务必查阅官方文档:https://docs.gitlab.com/

THE END