在现代软件开发中,源代码管理与持续集成(CI/CD)系统是基础设施中不可或缺的一环。虽然 GitHub、GitLab.com 和 Gitee 等平台已经提供了现成的服务,但在以下场景中,自建 GitLab 仍然具有明显优势:
- 数据隐私:敏感代码无法托管在第三方平台,自建服务器可最大限度保障源代码安全。
- 网络稳定性:企业内网或国内访问国外平台速度慢,自建服务更快更稳定。
- 可定制性强:可以按需启用/关闭功能模块,满足企业流程。
- 学习 DevOps 的理想环境:动手搭建 GitLab + Runner 是深入理解 CI/CD 流程的最佳方式。
本文将完整记录如何在 Ubuntu 服务器上通过 Docker 快速部署 GitLab 社区版,并完成 GitLab Runner 的注册与配置,最终实现完整的流水线任务自动执行。
一、部署环境与资源需求
📌 系统环境与软件依赖
- 操作系统:Ubuntu 22.04 LTS
- 安装方式:使用 Docker + Docker Compose 部署 GitLab CE 与 GitLab Runner
- 组件版本:
gitlab/gitlab-ce:、gitlab/gitlab-runner:alpine
📌 服务器硬件要求(建议配置)
项目 | 最低要求 | 建议配置 |
磁盘空间 | 40 GB(含 Runner 与 CI 缓存) | 100 GB 或更多 |
内存 | 4 GB(最低) | 8 GB 或更多 |
CPU | 双核 | 4 核或更多,频率 >= 2.5GHz |
网络 | 稳定公网 IP,支持端口转发 | 建议启用防火墙规则保护端口 |
⚠️ 注意:GitLab CE 本身较重,占用资源较大,部署前务必预留足够的系统资源,特别是内存和磁盘空间。
二、环境准备与前置条件
在正式部署 GitLab 之前,确保以下环境配置已经就绪:
✅ 安装并验证 Docker 与 Docker Compose
✅ 邮件传输代理(MTA)
GitLab 不内置邮件服务,用于账号验证、流水线通知等场景。推荐安装 Postfix:
或者也可跳过邮件配置,后续在 GitLab 配置中关闭邮件通知功能。
✅ 主机域名配置
确保服务器具备一个可被外部访问的 主机名或公网 IP,请勿使用
localhost 。其他一些注意事项
- Windows 版 Docker 尚未获得官方支持,因为其镜像存在已知的卷权限兼容性问题以及其他潜在的未知问题。
- 不要在 Kubernetes 中部署 GitLab Docker 镜像,因为它会造成单点故障。如果想在 Kubernetes 中部署 GitLab,需要改用 GitLab Helm Chart 或 GitLab Operator。
- 默认情况下,GitLab 使用端口 22 通过 SSH 与 Git 交互。
三、开始部署 GitLab 服务(Docker 方式)
🐳 使用 Docker Compose 部署 GitLab CE
1、选择镜像版本:访问 Docker Hub GitLab CE 镜像列表,建议选择稳定版本。

2、编写
docker-compose.yml:3、启动服务:
或使用传统 Docker 命令:
tips: 如果在国内网络环境下载镜像很慢或拉取异常, 需要自行更换docker镜像源。
4、验证 GitLab 状态:
成功示例输出如下:
🎉 访问 GitLab 管理页面
浏览器访问
http://<你的服务器 IP>,首次登录会提示设置 root 密码,随后即可创建项目、用户等资源。
四、安装 GitLab Runner 并注册到 GitLab
🖼️ 架构说明
GitLab Runner 是 GitLab 的执行引擎,负责拉取 CI/CD 配置并执行构建、测试、部署等任务。
📦 使用 Docker 部署 Runner
编写
docker-compose.yml:启动服务:
🔑 注册 Runner 到 GitLab 实例
执行注册流程:
按照提示填写信息:
提示项 | 示例输入 |
GitLab 实例 URL | http://<你的GitLab服务器IP> |
Token | 从 GitLab 项目设置 → CI/CD → Runners 获取 |
Runner 描述 | alpine-runner |
标签 | docker(流水线中可指定) |
Executor | docker |
默认镜像 | 如 alpine:latest、node:18、golang:1.21 等 |
成功后将自动保存配置文件于
/srv/gitlab-runner/config/config.toml。✅ 页面验证 Runner 注册状态
在 GitLab 项目的
Settings → CI/CD → Runners 页面中,确认已注册 Runner 显示为绿色激活状态。
五、验证流水线是否工作
1、新建项目
2、创建
.gitlab-ci.yml:
3、提交代码后查看 Pipelines 执行状态,即可验证 Runner 成功运行。

📎 参考文档
- 作者:Yibin
- 链接:https://yibin.dev/article/23d60b50-99a4-80ce-a7f5-d3f341008212
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章






