温馨提示×

linux下gitlab咋配置

小樊
46
2026-09-07 12:56:43
栏目: 智能运维

下面按最常见的两种方式给你讲 Linux 下 GitLab 的配置:① 用官方 Omnibus 包(最推荐)② Docker 方式。如果你是自建服务器,基本看①就够了。


一、使用 Omnibus 安装并配置 GitLab(推荐)

1. 系统要求

  • CentOS 7+/8、Ubuntu 20.04/22.04
  • 至少 4GB 内存(2GB 会很卡)

2. 安装 GitLab

Ubuntu / Debian

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

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" apt install gitlab-ce

CentOS / RHEL

sudo yum install -y curl policycoreutils-postfix
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum install gitlab-ce

3. 核心配置文件

/etc/gitlab/gitlab.rb

常见配置项

① 修改访问地址

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

或 HTTPS:

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

② 修改端口(避免和 Nginx 冲突)

nginx['listen_port'] = 8080

③ 关闭自带 Nginx(用自己 Nginx 时)

nginx['enable'] = false

④ 配置 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_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

4. 使配置生效

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

5. 常用命令

gitlab-ctl status
gitlab-ctl stop
gitlab-ctl start
gitlab-ctl tail

6. 首次访问

  • 浏览器打开:http://服务器IP
  • 设置 root 密码
  • 登录:root / 你设置的密码

二、Docker 方式运行 GitLab(轻量)

docker run -d \
  --hostname gitlab.example.com \
  -p 8080:80 \
  -v /srv/gitlab/config:/etc/gitlab \
  -v /srv/gitlab/logs:/var/log/gitlab \
  -v /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce

配置仍在:

/srv/gitlab/config/gitlab.rb

三、常见问题

1. 页面打不开

  • 防火墙:firewalld / ufw
  • 端口是否监听:netstat -tunlp | grep 80

2. 内存爆炸

unicorn['worker_processes'] = 2
postgresql['shared_buffers'] = "256MB"

3. 忘记 root 密码

gitlab-rails console
user = User.where(id: 1).first
user.password = 'newpassword'
user.save!

如果你告诉我:

  • 用的 什么 Linux
  • 物理机 / 云服务器 / Docker
  • 要不要 HTTPS / 域名

我可以直接给你一份可复制的 gitlab.rb 配置

0