温馨提示×

CentOS怎样部署GitLab

小樊
45
2026-07-08 08:02:21
栏目: 智能运维

下面给你一份**在 CentOS 上部署 GitLab(社区版 GitLab CE)**的常见做法,适用于 CentOS 7 / CentOS 8 Stream。如果你用的是 CentOS 9 Stream,建议改走 Rocky / Alma 或 Docker 方式。


一、准备环境

1️⃣ 系统要求

  • 内存:至少 4GB(8GB 更稳)
  • CPU:2 核以上
  • 磁盘:至少 20GB(代码多建议 50GB+)
  • 系统:CentOS 7 / 8

2️⃣ 关闭 SELinux(推荐)

setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

3️⃣ 开放端口

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

二、安装依赖

CentOS 7

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

CentOS 8

dnf install -y curl policycoreutils openssh-server
systemctl enable sshd
systemctl start sshd

三、安装 GitLab CE(官方推荐方式)

1️⃣ 添加 GitLab 仓库

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

2️⃣ 安装 GitLab CE

✅ 使用域名(推荐)

EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce

✅ 使用 IP 地址

EXTERNAL_URL="http://192.168.1.100" yum install -y gitlab-ce

⚠️ 安装过程会持续几分钟,耐心等待


四、初始化 GitLab

gitlab-ctl reconfigure

完成后会看到类似:

gitlab Reconfigured!

五、访问 GitLab

浏览器访问:

http://服务器IP

首次登录会要求设置 root 密码


六、常用管理命令

查看状态

gitlab-ctl status

重启

gitlab-ctl restart

查看日志

gitlab-ctl tail

七、配置 SMTP 邮件(可选)

编辑:

vi /etc/gitlab/gitlab.rb

示例(QQ 邮箱):

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "123456@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

然后:

gitlab-ctl reconfigure

八、Docker 方式(更省事,推荐)

如果你不想折腾系统环境:

docker run -d \
  --hostname gitlab.example.com \
  --publish 80:80 \
  --name gitlab \
  --restart always \
  gitlab/gitlab-ce:latest

九、常见问题

❌ 502 错误

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

❌ 访问慢

  • 关闭 Prometheus(适合小服务器)
prometheus_monitoring['enable'] = false

十、我可以进一步帮你

你可以告诉我:

  • CentOS 版本
  • 是否用 Docker
  • 是否需要 HTTPS / 域名
  • 内网还是公网部署

我可以给你定制版部署方案

0