gitlab 版本升级

  • 本文gitlab 采用dockre 安装

一、先确定gitlab的官方版本升级路线

二、gitlab-13.10.3升级到最新版本16.9.2

  • 升级路径:13.10.3 =>13.12.15 => 14.0.12 => 14.3.6 => 14.9.5 => 14.10.5 => 15.0.5 => 15.4.6 => 15.11.13 => 16.1.6 => 16.3.7 => 16.7.6 => 16.9.2

、升级耗时说明

gitlab版本

升级耗时(单位小时)

13.12.15

0.5

14.0.12

8

14.3.6

0.5

14.9.5

2

14.10.5

1

15.0.5

0.5

15.4.6

6

15.11.13

4

16.1.6

1

16.3.7

1

16.7.6

0.5

16.9.0

0.5

四、升级过程

避坑经验
13.12.15升级到14.0.12版本要特别注意,需要先做gitlab 存储转换,转换完成后在升级
15.11.13 => 16.1.6升级的时候,docker版本要大于20,不然会报错

  • 13.10.3 =>13.12.15 直接替换镜像 升级

  • 13.12.15升级到14.0.12版本要特别注意, 有些项目可能无法转换,需要手动对异常不能转换为hashed存储的项目进行预先手动删除,最后升级完成后在重新导入回去


13.12.15升级到14.0.12版本要特别注意

1、需要修改 gitlab.rb参数
修改 unicorn 配置为 puma 配置
# unicorn['worker_timeout'] = 300
# unicorn['worker_processes'] = 10

puma['worker_timeout'] = 300
puma['worker_processes'] = 10

2、13.12.15 升到 14.0.12 版本的时候,gitlab 存储方式会变更为hashed存储

所以需要在13.12.15的时候开始操作存储格式转换

执行存储迁移gitlab-rake gitlab:storage:migrate_to_hashed 需要执行2,3次,
并通过gitlab-rake gitlab:storage:list_legacy_projects 查询剩余未转换的项目
最终的结果是0

  • 15.11.13 => 16.1.6升级的时候,docker版本要大于20,不然会报错

  • 剩余的根据后台迁移进度升级就行