GitLab安装
gitlab可以安装在大多数的Gun/Linux发布版本上,并且与多家云提供商合作,从Gitlab获得最佳体验,需要平衡性能,可靠性、易于管理(备份、升级和故障排除)以及托管成本。
要求
安装GitLab之前,需要确定以下系统需求,该系统求包含详细关于最小硬件,软件,数据库,和一些附加需求。
操作系统要求
己支持的Linux发布版本
- Ubuntu (18.04/20.04)
- Debian (9/10/11)
- AlmaLinux (8)
- CentOS (7)
- openSUSE Leap (15.3)
- SUSE Linux Enterprise Server (12 SP2/12 SP5)
- Red Hat Enterprise Linux (use the AlmaLinux or CentOS instructions)
- Scientific Linux (use the CentOS instructions)
- Oracle Linux (use the CentOS instructions)
不受支持的 Linux 发行版和类 Unix 操作系统
- Arch Linux
- Fedora
- FreeBSD
- Gentoo
- macOS
- Windows
可以在这些操作系统上安装 GitLab,但不支持。请参阅源代码安装指南和安装指南以获取更多信息。
软件要求
Redis版本
GitLab 13.0 及更高版本需要 Redis 4.0 或更高版本。
建议使用 Redis 6.0 或更高版本,因为这是从 GitLab 13.9 开始的 Omnibus GitLab 软件包附带的。
硬件要求
存储
必要的硬盘空间在很大程度上取决于您要存储在 GitLab 中的存储库的大小,但作为指导,您应该至少拥有与所有存储库合并占用一样多的可用空间。
Omnibus GitLab 软件包需要大约 2.5 GB 的存储空间来安装。
除了本地硬盘驱动器,您还可以安装支持网络文件系统 (NFS) 协议的卷。此卷可能位于文件服务器、网络附加存储 (NAS) 设备、存储区域网络 (SAN) 或 Amazon Web Services (AWS) 弹性块存储 (EBS) 卷上。
如果你有足够的 RAM 和最近的 CPU,GitLab 的速度主要受硬盘寻道时间的限制。拥有快速驱动器(7200 RPM 及以上)或固态驱动器 (SSD) 可提高 GitLab 的响应能力。
由于文件系统性能可能会影响 GitLab 的整体性能,因此我们不建议使用基于云的文件系统进行存储。
不推荐使用用于 Git 存储库存储的 NFS。有关更多信息,请参阅我们的官方支持声明。
CPU
CPU 要求取决于用户数量和预期工作负载。您的确切需求可能更多,具体取决于您的工作量。您的工作量受以下因素的影响,例如但不限于您的用户的活跃程度、您使用的自动化程度、镜像和存储库/更改大小。
以下是少数几个 GitLab 用户群大小示例的推荐最低 CPU 硬件指南。
- 4 核是推荐的最小核数,最多支持 500 个用户
- 8核最多支持1000个用户
内存
内存要求取决于用户数量和预期工作负载。您的确切需求可能更多,具体取决于您的工作量。您的工作量受以下因素的影响,例如但不限于您的用户的活跃程度、您使用的自动化程度、镜像和存储库/更改大小。
以下是少数 GitLab 用户群大小示例的推荐最低内存硬件指南。
- 4GB RAM 是所需的最小内存大小,最多可支持 500 个用户
- 8GB RAM 支持多达 1000 个用户
除了上述之外,我们通常建议您的服务器上至少有 2GB 的交换空间,即使您目前有足够的可用 RAM。如果可用内存发生变化,交换有助于减少发生错误的机会。我们还建议将内核的 swappiness 设置配置为 10 之类的低值,以充分利用 RAM,同时在需要时仍然可以使用 swap。
数据库
PostgreSQL 是唯一受支持的数据库,它与 Omnibus GitLab 包捆绑在一起。您还可以使用外部 PostgreSQL 数据库。 GitLab 12.1 中删除了对 MySQL 的支持。建议使用 GitLab 和 MySQL/MariaDB 的现有用户在升级之前迁移到 PostgreSQL。
PostgreSQL 要求
运行 PostgreSQL 的服务器应该至少有 5-10 GB 的可用存储空间,但具体要求取决于用户数量。
强烈建议至少使用最低 PostgreSQL 版本(如下表中指定),因为这些版本用于开发和测试:
GitLib version | Minimum PostgreSQL version |
---|---|
13.0 | 11 |
14.0 | 12.10 |
还必须确保将以下扩展加载到每个 GitLab 数据库中。阅读有关此要求和故障排除的更多信息。
Extension | Minimum GitLab version |
---|---|
pg_trgm. | 8.6 |
btree_gist. | 13.1 |
plpgsql | 11.7 |
使用Docker安装GitLab
GitLab Docker 镜像是 GitLab 的整体镜像,在单个容器中运行所有必要的服务。
在这里找到gitlab社区版的镜像 默认拉取是latest,如果需要拉取指定版本,请在:后面跟上版本号。
Docker 映像不包含邮件传输代理 (MTA)。推荐的解决方案是添加在单独容器中运行的 MTA(例如 Postfix 或 Sendmail)。作为另一种选择,您可以直接在 GitLab 容器中安装 MTA,但这会增加维护开销,因为您可能需要在每次升级或重启后重新安装 MTA。
设置卷位置
配置一个新的环境变量 $GITLAB_HOME 指向配置、日志和数据文件所在的目录。确保目录存在并且已授予适当的权限。
export GITLAB_HOME=/path/to/dir
GitLab 容器使用主机挂载的卷来存储持久数据:
本地挂载点 | 容器挂载点 | 作用 |
---|---|---|
$GITLAB_HOME/data | /var/opt/gitlab | 存储应用数据 |
$GITLAB_HOME/logs | /var/log/gitlab | 存储日志数据 |
$GITLAB_HOME/config | /etc/gitlab | 存储gitlab配置文件 |
使用 Docker 引擎安装 GitLab
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 \
--shm-size 256m \
gitlab/gitlab-ee:latest
这将下载并启动 GitLab 容器并发布访问 SSH、HTTP 和 HTTPS 所需的端口。所有 GitLab 数据都将存储为 $GITLAB_HOME 的子目录。系统重启后容器会自动重启。
通过docker logs -f 跟踪启动日志
docker logs -f gitlab
访问 GitLab URL,并使用用户名 root 和来自以下命令的密码登录:
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
密码文件将在 24 小时后的第一次重新配置运行中自动删除。