GitLab 提供多个版本,主要分为 社区版(CE) 和 企业版(EE),企业版又细分为多个付费等级(Starter、Premium、Ultimate)。下面是它们的核心区别:
🆓 GitLab 社区版(Community Edition, CE)
- 价格:完全免费,开源
- 适用对象:个人开发者、小型团队
功能特点:
- 基本的 Git 仓库管理
- 代码审查(Merge Request)
- 持续集成/持续部署(CI/CD)
- 问题追踪(Issue Tracker)
- Wiki 和项目看板
限制:
- 不支持高级安全审计
- 无官方技术支持
- 无合规性报告、策略管理等企业级功能
💼 GitLab 企业版(Enterprise Edition, EE)
企业版是在社区版基础上扩展的,提供更强大的功能和支持服务。
功能类别 | 社区版(CE) | 企业版(EE) |
---|---|---|
CI/CD 自动化 | ✅ 基础支持 | ✅ 高级功能(如并发限制、流水线优化) |
安全性 | ❌ 无高级安全 | ✅ 支持 SAML、LDAP、双因素认证、审计日志 |
合规性与治理 | ❌ 无 | ✅ 合规报告、策略管理、代码所有权控制 |
项目管理 | ✅ 基础功能 | ✅ 高级功能(如时间跟踪、资源分配) |
DevOps 集成 | ✅ 基本支持 | ✅ 深度集成 JIRA、Kubernetes、Vault 等 |
技术支持 | ❌ 社区支持 | ✅ 官方支持(根据套餐等级) |
价格 | 免费 | 按用户计费,Premium 每人每月约 $29 |
📌 企业版适合中大型团队,尤其是对安全、合规、审计有要求的组织。
🧠 如何选择?
- 如果你是 个人开发者或小型团队,社区版已经非常强大,足够日常开发和协作。
- 如果你是 企业用户,需要安全审计、权限细化、合规性管理等功能,企业版是更合适的选择。
- 企业版还提供试用期,你可以先体验再决定是否升级。
部署 GitLab 社区版(GitLab CE)有多种方式,适合不同的技术环境和使用需求。下面是几种主流部署方式:
🚀 GitLab 社区版部署方式总览
部署方式 | 适用场景 | 优点 | 难度 |
---|---|---|---|
Docker 部署 | 本地或云端快速部署 | 快速、隔离性好、易于迁移 | ⭐⭐ |
Linux 原生安装 | 企业服务器、长期运行环境 | 稳定、可深度定制 | ⭐⭐⭐ |
RPM/YUM 安装 | CentOS/RHEL 系统 | 官方支持、自动更新 | ⭐⭐ |
Kubernetes 部署 | 云原生架构、高可用需求 | 弹性伸缩、适合大规模部署 | ⭐⭐⭐⭐ |
本地虚拟机部署 | 学习测试、离线环境 | 易于控制、无公网依赖 | ⭐ |
🐳 方式一:Docker 部署(推荐)
适合快速搭建 GitLab 服务,尤其适合开发者或小团队。
docker run --detach \
--hostname gitlab.local \
--publish 443:443 --publish 80:80 --publish 222:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ce:latest
🧱 方式二:Linux 原生安装(APT/YUM)
适合企业级部署,支持系统服务管理。
Ubuntu/Debian 安装:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
CentOS/RHEL 安装:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
安装完成后运行:
sudo gitlab-ctl reconfigure
📦 方式三:RPM 包安装(离线环境)
适合没有公网的服务器或需要指定版本的情况。
- 从 GitLab 官方 RPM 仓库 下载
.rpm
文件 使用命令安装:
sudo rpm -ivh gitlab-ce-xx.rpm sudo gitlab-ctl reconfigure
☁️ 方式四:Kubernetes 部署(高级)
适合云原生架构,支持高可用和弹性扩展。
使用 Helm Chart 安装 GitLab:
helm repo add gitlab https://charts.gitlab.io/ helm install gitlab gitlab/gitlab
- 需要配置 Ingress、持久化存储、Runner 等组件
💻 方式五:本地虚拟机部署(学习测试)
适合离线环境或初学者练习:
- 安装虚拟机软件(如 VirtualBox、VMware)
- 安装 Linux 系统(推荐 Ubuntu 或 CentOS)
- 按照原生安装或 Docker 安装方式部署 GitLab
下面我用docker方式部署一遍:
🧰 一、环境准备
✅ 系统要求
- 推荐使用 Linux(如 Ubuntu 20.04 或 CentOS 7/8)
- 至少 4GB 内存,2 核 CPU,10GB 磁盘空间
✅ 安装依赖
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata
✅ 安装邮件服务(可选)
sudo apt-get install -y postfix
sudo systemctl enable postfix
sudo systemctl start postfix
🐳 二、使用 Docker 安装 GitLab CE
1. 设置数据卷路径
提前创建 /srv/gitlab
文件夹,手动创建并设置权限:
sudo mkdir -p /srv/gitlab/{config,logs,data}
sudo chown -R 1000:1000 /srv/gitlab
👆 这里的
1000:1000
是 GitLab 容器默认的运行用户 UID 和 GID。如果不确定,可以先运行容器再查看实际 UID。
export GITLAB_HOME=/srv/gitlab
2. 拉取镜像并运行容器
docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 222: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-ce:latest
🔐 三、首次登录与配置
获取管理员密码
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
访问 GitLab
- 打开浏览器访问
http://your-server-ip
- 使用用户名
root
和上述密码登录 设置域名或 IP 地址:
sudo vi /srv/gitlab/config/gitlab.rb # 修改 external_url 为你的地址或者新增配置 external_url 'http://xx.xx.xx.xx' #进入容器 docker exec -it gitlab bash gitlab-ctl reconfigure
⚙️ 四、启用 CI/CD 功能
安装 GitLab Runner
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt-get install gitlab-runner
注册 Runner
sudo gitlab-runner register
- 输入 GitLab 地址
- 提供注册 Token(在项目设置 → CI/CD → Runners 中获取)
- 选择执行器(推荐 shell 或 docker)
📝 五、创建 .gitlab-ci.yml
文件
这是定义 CI/CD 流程的核心文件。以下是一个 Node.js 项目的示例:
stages:
- test
- build
- deploy
test:
script:
- npm install
- npm test
build:
script:
- npm run build
deploy:
script:
- scp -r ./dist user@your-server:/var/www/project
only:
- main
你可以根据项目类型(Java、Python、PHP 等)自定义流程。
🧪 六、测试与优化
- 使用 Git 提交代码后,GitLab 会自动触发 CI/CD 流程
- 可在项目页面查看 Pipeline 状态与日志
- 配置邮件通知、权限管理、备份等高级功能