温馨提示×

Linux系统如何部署GitLab

小樊
43
2026-07-14 10:35:59
栏目: 智能运维

在 Linux 系统上部署 GitLab,最常用、最稳定的方式是使用 GitLab 官方提供的 Omnibus 安装包。下面我按通用流程 + 常见发行版给你一个完整、可操作的部署指南。


一、部署前准备

1️⃣ 系统要求(官方建议)

项目 最低 推荐
CPU 2 核 4 核+
内存 4 GB 8 GB+
磁盘 20 GB 50 GB+
系统 Linux Ubuntu / CentOS / Rocky / Alma

⚠️ 内存 < 4GB 很容易出现 502 错误


2️⃣ 系统环境

  • 服务器可联网
  • rootsudo 权限
  • 若用于生产,建议:
    • 配置域名(如 gitlab.example.com
    • 配置 SMTP(邮件通知)

二、不同 Linux 发行版安装方式


✅ Ubuntu / Debian 安装 GitLab(推荐)

1️⃣ 安装依赖

sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata

2️⃣ 添加 GitLab 仓库

curl -fsSL https://packages.gitlab.com/gpg.key | sudo gpg --dearmor > /usr/share/keyrings/gitlab-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/gitlab-archive-keyring.gpg] https://packages.gitlab.com/gitlab/gitlab-ee/ubuntu $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/gitlab_gitlab-ee.list

3️⃣ 安装 GitLab

sudo apt update
sudo apt install -y gitlab-ee

社区版用 gitlab-ce


✅ CentOS / Rocky / AlmaLinux 安装 GitLab

1️⃣ 安装依赖

sudo yum install -y curl policycoreutils openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd

2️⃣ 添加 GitLab 仓库

curl -fsSL https://packages.gitlab.com/gpg.key | sudo tee /etc/pki/rpm-gpg/gitlab-gpgkey
sudo tee /etc/yum.repos.d/gitlab_gitlab-ee.repo <<EOF
[gitlab_gitlab-ee]
name=gitlab_gitlab-ee
baseurl=https://packages.gitlab.com/gitlab/gitlab-ee/el/7/\$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey
EOF

3️⃣ 安装 GitLab

sudo yum install -y gitlab-ee

三、配置 GitLab(关键步骤)

1️⃣ 配置访问地址

编辑配置文件:

sudo vim /etc/gitlab/gitlab.rb

修改:

external_url 'http://gitlab.example.com'

如果是 IP 访问:

external_url 'http://192.168.1.100'

2️⃣ 应用配置(必须执行)

sudo gitlab-ctl reconfigure

⏳ 首次执行时间较长(3–10 分钟)


四、访问 GitLab

浏览器访问:

http://服务器IP

首次登录:

  • 用户名:root
  • 密码查看:
sudo cat /etc/gitlab/initial_root_password

⚠️ 密码 24 小时后自动删除


五、常用管理命令

功能 命令
启动 sudo gitlab-ctl start
停止 sudo gitlab-ctl stop
重启 sudo gitlab-ctl restart
查看状态 sudo gitlab-ctl status
查看日志 sudo gitlab-ctl tail

六、可选配置(生产推荐)

✅ 配置 HTTPS(Let’s Encrypt)

external_url 'https://gitlab.example.com'

letsencrypt['enable'] = true
letsencrypt['auto_renew'] = true

然后:

sudo gitlab-ctl reconfigure

✅ 配置 SMTP 邮件

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxx@qq.com"
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

七、常见问题

❌ 502 Whoops

原因:

  • 内存不足
  • gitlab-ctl reconfigure 未完成
  • 端口被占用

解决:

free -h
sudo gitlab-ctl restart

❌ 访问慢

  • 关闭不需要的服务(CI Runner、Prometheus)
  • 增加 swap

八、Docker 方式(可选)

docker run -d \
  --hostname gitlab.example.com \
  -p 80:80 -p 443:443 -p 22:22 \
  --name gitlab \
  gitlab/gitlab-ee

九、总结

推荐方案

  • 新手上路:Ubuntu + Omnibus
  • 生产环境:域名 + HTTPS + SMTP
  • 资源有限:至少 4GB 内存

如果你愿意,我可以:

  • ✅ 给你 一键安装脚本
  • ✅ 帮你 排查 502 / 卡顿问题
  • ✅ 指导 GitLab CI/CD 配置
  • ✅ 讲 GitLab 与 Jenkins / Harbor / K8s 集成

你现在是 个人学习 还是 公司生产环境

0