声明:这是我在大学毕业后进入第二家互联网公司学习的内容


背景

gitlab已经有2年多没更新了,领导建议升级到最新版本,之前gitlab迁移过一次(docker化),网上查了下资料用docker升级还是比较简单的,一起来做下吧。

备份

升级前第一件事是备份

1
docker exec -itd gitlab gitlab-rake gitlab:backup:create

升级需要有一定顺序

8.11.Z -> 8.12.0 -> 8.17.7 -> 9.5.10 -> 10.8.7 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> latest 13.12.Z -> latest 14.0.Z -> 14.1.Z -> latest 14.Y.Z

目前版本是12.4.2-ce.0

则升级版本依次应先升级到12.10.14、13.0.14、13.1.11、13.12.7(最新版本)

升级

下载镜像

1
2
3
4
docker pull gitlab/gitlab-ce:12.10.14-ce.0
docker pull gitlab/gitlab-ce:13.0.14-ce.0
docker pull gitlab/gitlab-ce:13.1.11-ce.0
docker pull gitlab/gitlab-ce:13.12.7-ce.0

升级顺序

1
2
3
4
5
6
7
docker-compose down
vim docker-compose.yaml
更改镜像号
docker-composer up -d
docker exec gitlab update-permissions
docker logs -f gitlab
一直查看到gitlab所有组件全部run后就表示这次升级OK了

然后反复操作直到镜像号为13.12.7即可

报错

配置文件不一样

1
2
Recipe Compile Error in /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/default.rb
gitlab_monitor['enable'] has been deprecated since 12.3 and will be removed

把原配置文件的gitlab_monitor[‘enable’] 给注释掉即可,不然新版本不能读取配置文件

权限不足的问题

从旧的 GitLab Docker 镜像更新时,您可能会遇到权限问题。当之前图像中的用户未正确保留时,就会发生这种情况。有修复所有文件权限的脚本。
执行docker exec gitlab update-permissions即可

参考文档

https://docs.gitlab.com/ee/update/

https://docs.gitlab.com/ee/install/docker.html