提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:本文章gitLab部署采用的是docker容器方式,之前文章详细介绍过部署全流程:
运用场景:由于之前使用gitLab版本(14.6.1)比较旧,计划在本机上进行一个的版本更新,并同时保证原有数据不丢失的状况。最终升级版本为(15.1.6)。
一、版本升级
1.1、升级路线
首先Gitlab升级是不能跨大版本升级的,必须根据官方升级路径来操作。
采用官方提供的一个解释说明,官方连接:(https://docs.gitlab.com/ee/update/index.html#upgrade-paths)
点击后,进入如下页面
以下就是官方提供的指定升级路径,不能越级,只能一个一个下载镜像并进行启动容器
1.2、升级前后检查
在每一次升级前后都需要检查的内容,以确保升级过程中节点的正常操作。
# 状态检查
gitlab-rake gitlab:check
# 数据加密检查
gitlab-rake gitlab:doctor:secrets
查看当前版本
1.3、数据的备份
GitLab 12.2 或更高版本:
- 进入容器: docker exec -it (容器id) bash
- 备份指令:gitlab-backup create
- 检查: ls /home/git/data/backups/
备份文件命名一般都是 时间戳+_gitlab_backup.tar
需要注意的是,该命令只是备份了数据, 配置文件、ssl证书等内容是没有备份的,需要手动备份。
建议:在最初部署容器的同时,将相关目录关在出来,如果是同一机器中进行版本升级,则无需进行数据的迁移,备份数据只是为防止万一。所需挂载目录在之前文章有过详细解释。
1.4、升级
按照官方提供的升级路线进行逐一版本升级,建议在升级前,在机器内存允许的情况下,将升级路线中版本镜像进行全部下载,避免出现升级过程中等待下载镜像过程,单个镜像普遍1G以上,会消耗大量的等待时间。
docker run gitlab-ce=14.6.7-ce.0
docker run gitlab-ce=14.7.7-ce.0
docker run gitlab-ce=14.8.6-ce.0
....
docker run gitlab-ce=15.0.5-ce.0
docker run gitlab-ce=15.1.6-ce.0
以上代码仅供参考,因为根据实际场景都需要指定暴漏端口、挂载目录等操作,可参考之前文章的启动命令,仅修改版本即可
docker run \
-itd \
-p 9980:80 \
-p 9922:22 \
-v /home/gitlab/etc:/etc/gitlab \
-v /home/gitlab/log:/var/log/gitlab \
-v /home/gitlab/opt:/var/opt/gitlab \
--restart always \
--privileged=true \
--name gitlab \
gitlab/gitlab-ce:14.6.7-ce.0
每一次的版本升级都要检查日志,确保正常后,再执行之后操作
docker logs -f (容器id)
二、数据迁移
只能将备份还原到与创建备份时完全相同的 GitLab 版本和类型 (CE/EE)。
新服务器安装好Gitlab之后,按照下面的顺序执行命令
# Stop the processes that are connected to the database
# docker exec -it <name of container> gitlab-ctl stop puma
docker exec -it (容器名称) gitlab-ctl stop puma
#docker exec -it <name of container> gitlab-ctl stop sidekiq
docker exec -it (容器名称) gitlab-ctl stop sidekiq
# Verify that the processes are all down before continuing
# docker exec -it <name of container> gitlab-ctl status
docker exec -it (容器名称) gitlab-ctl status
# Run the restore. NOTE: "_gitlab_backup.tar" is omitted from the name
# docker exec -it <name of container> gitlab-backup restore BACKUP=11493107454_2018_04_25_10.6.4-ce
docker exec -it (容器名称) gitlab-backup restore BACKUP=1697632970_2023_10_18_16.1.5
# Restart the GitLab container
# docker restart <name of container>
docker restart (容器名称)
# Check GitLab
# docker exec -it <name of container> gitlab-rake gitlab:check SANITIZE=true
docker exec -it (容器名称) gitlab-rake gitlab:check SANITIZE=true