在生产环境中运行 GitLab 时,备份与升级是保障安全与稳定的核心操作。下面我将结合官方文档与实践经验,整理出一份完整的教程。
🛠 前提条件
- 已安装 Docker Engine 与 Docker Compose
- GitLab 通过 Docker Compose 部署
- 具备服务器的 root/sudo 权限
- 熟悉基本的 Linux 命令行操作
📦 第一步:创建备份
在升级前,必须先备份数据与配置。
-
完整备份
bashdocker exec -t <container name> gitlab-backup create备份文件会写入:
/var/opt/gitlab/backups -
数据库轻量备份(仅数据库,便于快速回滚)
bashdocker exec -t <container name> gitlab-backup create SKIP=artifacts,repositories,registry,uploads,builds,pages,lfs,packages,terraform_state -
secrets 文件备份
- 容器内路径:
/etc/gitlab/gitlab-secrets.json - 宿主机挂载路径:
$GITLAB_HOME/config/gitlab-secrets.json
该文件必须保存,否则恢复时会遇到密钥不一致问题。
- 容器内路径:
📝 第二步:编辑 docker-compose.yml
在 docker-compose.yml 中更新 GitLab 镜像版本,例如:
yaml
services:
gitlab:
image: gitlab/gitlab-ce:18.7.0-ce.0
restart: always
hostname: 'gitlab.example.com'
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- /srv/gitlab/config:/etc/gitlab
- /srv/gitlab/logs:/var/log/gitlab
- /srv/gitlab/data:/var/opt/gitlab
镜像版本可在 Docker Hub GitLab 镜像库 查询。
🔄 第三步:拉取并升级
执行以下命令:
bash
docker compose pull
docker compose up -d
这会拉取最新镜像并重启容器,挂载卷中的数据与配置会被保留。
✅ 第四步:验证升级
-
查看容器状态:
bashdocker compose ps -
检查日志:
bashdocker compose logs -f gitlab -
登录 GitLab Web 界面,确认版本已更新。
⚠️ 注意事项
- 版本跨度大时,建议分阶段升级(例如 15.x → 16.x)。
- 升级失败时,可利用备份进行回滚。
- 建议在 测试环境先验证升级流程,再应用到生产环境。
🎯 总结
升级流程核心步骤:
- 创建备份(数据库 + secrets)
- 编辑 docker-compose.yml 更新镜像版本
- 执行 docker compose pull/up 完成升级
- 验证升级结果 确认服务正常