1. 先算资源,自建 GitLab 不是轻量静态站#
GitLab 同时包含代码托管、数据库、后台任务和其他组件。当前官方单节点基线为 8 vCPU、16 GB 内存;受限配置也至少需要按官方低内存方案评估约 8 GB,而不是在 1 GB 实例上加 Swap 就当作可用方案。存储还要分别预算系统、仓库、数据库、构建产物和备份。
先估计用户数、仓库大小、CI 任务和保留期,选择满足实际负载的配置。只需个人 Git 托管时,也可比较更轻的方案或托管服务,不必为了一个小仓库承担整套维护成本。
2. 准备域名、端口和持久目录#
确定访问域名,例如 git.example.com,配置 DNS 与 HTTPS。HTTP、HTTPS、Git over SSH 和系统管理 SSH 是不同入口,端口不能互相冲突。
官方 Docker 安装通常把配置、日志和数据分别映射到主机目录,常见容器内路径为 /etc/gitlab、/var/log/gitlab、/var/opt/gitlab。在部署前创建并核对主机路径、权限与磁盘容量,不使用临时容器文件系统保存唯一数据。
3. 使用官方镜像与明确版本#
从 GitLab 官方 Docker 安装文档选择 CE/EE 与具体版本,按实际授权和功能需要确定。配置 external_url 为正式域名;采用现有反向代理时,按官方说明设置容器内监听和可信代理,不重复申请或覆盖证书。
启动后初始化可能需要一段时间,查看服务状态与日志:
docker logs --tail 100 gitlab
docker exec gitlab gitlab-ctl status容器名按实际替换。不要因初始化尚未结束就反复删除数据卷。初始管理员凭据只在自己的受控终端读取,首次登录后按官方流程更新并启用账户保护。
4. 验证一个完整的代码托管流程#
创建私人测试项目,使用普通用户克隆、提交并推送一份无敏感内容的代码,再验证网页能看到提交。检查 SSH clone 地址中的端口与实际映射一致,不能只测试网页登录。
开放注册、项目可见性、令牌权限与外部集成按用途设置。CI Runner 建议与代码托管服务隔离,运行陌生项目的流水线可能执行任意代码,不应直接共享宿主机高权限 Docker socket。
5. 备份包含应用数据和秘密配置#
docker exec -t gitlab gitlab-backup create该命令是官方镜像常见的应用备份入口,使用前核对当前版本文档和存储余量。GitLab 应用备份不自动覆盖所有配置与秘密文件,尤其要单独保存 gitlab.rb、gitlab-secrets.json 以及外部对象存储相关数据。
备份下载到另一处并限制权限。恢复通常要求匹配的版本与版本类型,不能直接拿旧备份导入任意最新镜像。做一次测试恢复,确认仓库、用户、问题记录和附件可用。
6. 升级沿官方要求逐步进行#
查目标版本的升级路径和必须停留的中间版本,备份后再升级。数据库迁移可能耗时,镜像回退不一定能撤销它。维护后验证网页、SSH、后台任务、Runner 和备份任务,再删除旧回退点。
监控磁盘增长与失败作业,配置日志、构建产物和镜像保留策略。通用管理见Compose与站点监控。
完成后检查
清理制品和日志有助控制磁盘增长,但删除前应确认保留策略与业务需要。