「GitLab」- 升级 到最新版本(容器部署)

  CREATED BY JENKINSBOT

问题描述

该笔记将记录:通过 Docker 镜像部署的 GitLab 服务的升级方法,以及常见问题的解决方案。

解决方案

对于 Docker 部署的 GitLab 服务,仅有一个镜像,升级过程也比较简单:

根据官方文档,对于 Docker 部署,升级过程如下:
1)停止容器,并删除旧容器;
2)拉取镜像,到最新版本;
2)启动新容器,并检查 GitLab 正常运行;

但是,为了保险起见,每次我们仅升级一个次版本号。例如,我们会按照 13.6 => 13.7 => 13.8 => 13.9 的顺序依次升级。

13.6.3-ce.0 to 14.0.5-ce.0 (2021-07-16)

第一步、数据备份:

rsync -av /data/gitlab/ /srv/backup/gitlab/

第二步,修改 docker-compose.yaml 的镜像版本,每次仅升级一个次版本号:
13.6.3-ce.0 => 13.7.9-ce.0 => 13.8.8-ce.0 => 13.9.7-ce.0 => 13.10.5-ce.0 => 13.11.7-ce.0 => 13.12.8-ce.0 => 14.0.5-ce.0

第三步、访问站点检查服务能够正常运行,然后进行代码推送测试

12.4.2-ce.0 to 13.6.3-ce.0(2021-01-05)

我们的 GitLab 当前版本为 12.4 版本(容器部署),需要升级到 13.6 版本,以使用某些新功能。

此次升级最主要的问题:在于跨版本升级很可能会失败,这也是不经常升级的缺点。

该部分将记录:如何将 GitLab 从 12.x 升级到 13.x 版本,以及相关问题的解决方法。

第一步、备份数据

运维工作千万条,数据备份第一条。执行如下命令进行数据升级:

rsync -av /data/gitlab/ /data/gitlab.12.4.2-ce.0.backup/

第二步、服务升级

最开始,我们直接从 12.4.2-ce.0 升级到 13.6.3-ce.0 版本,果然会失败。

因此改用逐步升级的方案:12.4.2-ce.0 => 12.10.14-ce.0 => 13.0.0-ce.0 => 13.3.9-ce.0 => 13.6.3-ce.0

其中,从 12.10.14-ce.0 到 13.0.0-ce.0 是非常关键的,这两个版本的变更较大。

建议认真阅读 Upgrading GitLab | GitLab 文档,官方给出升级路径(Upgrade paths)。

第三步、验证结果

1)访问我们的 GitLab 站点进行验证;
2)进行代码推送,验证服务可用;

参考文献

GitLab Docker images | GitLab
GitLab Docker images | GitLab/Update GitLab using Docker Engine