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)
下载步骤:
-
添加 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/ -
安装 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 的使用。
安装步骤:
-
安装 Docker:
参考 Docker 官方文档进行安装:https://docs.docker.com/engine/install/
-
拉取 GitLab CE 镜像:
bash
docker pull gitlab/gitlab-ce:latest -
运行 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 的步骤。
-
准备工作:
-
确保系统已安装
curl
、openssh-server
、ca-certificates
和postfix
(用于发送邮件通知)。如果没有,请先安装:bash
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates postfix -
在安装
postfix
时,会弹出一个配置界面,选择 "Internet Site",然后输入你的服务器的域名。
-
-
添加 GitLab 仓库:
bash
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash -
安装 GitLab CE:
bash
sudo EXTERNAL_URL="http://gitlab.example.com" apt-get install gitlab-ce
*EXTERNAL_URL
:设置 GitLab 的访问 URL,将其替换为你自己的域名或 IP 地址。如果你的服务器没有域名,可以使用 IP 地址。 如果你稍后需要更改 URL,请务必重新配置 GitLab。 -
配置和启动 GitLab:
安装完成后,GitLab 会自动进行配置和启动。如果安装过程中没有设置
EXTERNAL_URL
,你需要手动配置:bash
sudo gitlab-ctl reconfigure -
访问GitLab
打开浏览器,输入你在EXTERNAL_URL
中设置的域名或 IP 地址,即可访问 GitLab。 -
首次登录
首次访问 GitLab 时,系统会要求你设置 root 用户的密码。设置一个强密码,并牢记。然后使用用户名
root
和你设置的密码登录。
三、GitLab CE 使用教程
1. 用户界面
GitLab 的用户界面简洁直观,主要分为以下几个部分:
- 顶部导航栏:包含项目、群组、活动、里程碑、代码片段等链接,以及搜索框和用户菜单。
- 侧边栏:根据当前所在页面显示不同的内容,如项目概览、仓库、问题、合并请求、CI/CD、Wiki 等。
- 主内容区:显示具体的内容,如项目列表、代码文件、问题详情等。
2. 创建项目
- 点击顶部导航栏的 "+" 图标,选择 "New project/repository"。
- 选择 "Create blank project"。
- 填写项目信息:
- Project name:项目名称。
- Project slug:项目路径,通常自动生成。
- Project URL: 可选择,如果需要更改,请点击进行配置。
- Project description (optional):项目描述。
- Visibility Level:可见性级别,可选 Private(私有)、Internal(内部)或 Public(公开)。
- Initialize repository with a README:是否使用 README 文件初始化仓库。
- 点击 "Create project"。
3. 克隆项目
- 在项目页面,点击 "Clone" 按钮。
- 选择 "Clone with HTTPS" 或 "Clone with SSH"。
- HTTPS:使用用户名和密码进行身份验证。
- SSH:使用 SSH 密钥进行身份验证,更安全,推荐使用。
- 复制克隆 URL。
-
在本地终端,使用
git clone
命令克隆项目:bash
git clone <克隆 URL>
4. 添加、提交和推送代码
- 在本地项目目录中创建或修改文件。
-
使用
git add
命令将文件添加到暂存区:bash
git add . # 添加所有修改的文件
git add <文件名> # 添加指定文件 -
使用
git commit
命令提交更改:bash
git commit -m "提交信息" -
使用
git push
命令将本地提交推送到 GitLab 服务器:bash
git push origin <分支名> # 通常是 master 或 main
5. 创建分支
- 在项目页面,点击 "Repository" -> "Branches"。
- 点击 "New branch" 按钮。
- 填写分支名称,选择基于哪个分支创建,然后点击 "Create branch"。
- 在本地使用
git checkout
切换到新分支:
bash
git fetch origin
git checkout -b <新分支名> origin/<新分支名>
6. 创建合并请求(Merge Request)
- 在项目页面,点击 "Merge requests" -> "New merge request"。
- 选择源分支(你要合并的分支)和目标分支(要合并到的分支)。
- 填写合并请求的标题和描述,指派审核人,添加标签等。
- 点击 "Create merge request"。
7. 代码审查
- 审核人收到合并请求通知后,可以查看代码变更,添加评论,提出修改意见。
- 提交者根据评论修改代码,并再次推送。
- 审核人确认代码无误后,可以批准合并请求。
8. 合并分支
- 合并请求被批准后,可以点击 "Merge" 按钮将代码合并到目标分支。
- GitLab 会自动进行合并,如果存在冲突,需要手动解决。
9. 问题跟踪(Issues)
- 在项目页面,点击 "Issues" -> "New issue"。
- 填写问题的标题和描述,指派处理人,添加标签等。
- 点击 "Create issue"。
- 问题可以在列表中查看,进行讨论,分配,关闭等操作。
10. CI/CD
GitLab CI/CD 是 GitLab 的内置持续集成和持续交付/部署功能。
- 在项目根目录创建
.gitlab-ci.yml
文件。 - 在该文件中定义 CI/CD 流水线的各个阶段(stages)和任务(jobs)。
- 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: 用于扫描代码中的安全漏洞
四、常见问题及解决方法
-
忘记 root 密码:
- 可以通过 GitLab 提供的密码重置功能重置密码。
- 如果无法通过邮件重置,可以进入 GitLab 容器或服务器,使用命令行工具重置。
- 具体操作方法,参考: https://docs.gitlab.com/ee/security/reset_user_password.html
-
GitLab 无法访问:
- 检查 GitLab 服务是否正在运行。
- 检查防火墙是否阻止了 GitLab 的端口(80、443、22)。
- 检查域名或 IP 地址是否配置正确。
- 检查 GitLab 的日志文件,查看是否有错误信息。
-
GitLab 运行缓慢:
- 检查服务器的资源使用情况(CPU、内存、磁盘 I/O)。
- 增加服务器的资源。
- 优化 GitLab 的配置,如调整 Unicorn worker 进程数、数据库连接数等。
- 清理 GitLab 的缓存。
-
Git clone 失败:
- 检查网络连接是否正常。
- 检查 GitLab 服务器是否可访问。
- 检查用户名和密码是否正确(使用 HTTPS 克隆时)。
- 检查 SSH 密钥是否配置正确(使用 SSH 克隆时)。
-
Git push 失败:
- 检查本地是否有未提交的更改。
- 检查是否有权限推送到目标分支。
- 检查远程仓库是否已满。
- 检查是否有冲突需要解决。
总结
本教程详细介绍了 GitLab CE 的下载、安装和使用,涵盖了从基础操作到高级功能的各个方面。希望通过本教程,你能够快速上手 GitLab,并将其应用到你的开发工作中。GitLab 是一个功能强大的工具,熟练掌握它可以大大提高你的开发效率和团队协作能力。
记住,GitLab 的官方文档是最好的学习资源,遇到问题时,请务必查阅官方文档:https://docs.gitlab.com/