GitLab版本升级(Docker)
官方文档:https://docs.gitlab.com/ee/update/index.html
gitlab的docker镜像标签:https://hub.docker.com/r/gitlab/gitlab-ce/tags
参考文档:https://www.cnblogs.com/inxworld/p/11782545.html
概述
GitLab的版本升级流程可以简单概括为:
- 关闭旧版本的gitlab服务;
- 保留旧版本的配置文件(/etc/gitlab)、数据文件(/var/opt/gitlab)和日志文件(/var/log/gitlab);
- 安装新版本的gitlab并启动,即可自动升级。
但是不同版本之间可能存在着表结构等方面的差异,如果一个版本想兼容任意旧版本的直接升级那要程序员的头发可能要多掉好几把。GitLab采取的做法是指定一些固定版本连成一条升级路线,路线上的版本可按顺序直接升级下一版本,如果要升级的目标版本比较高,那需要一级一级地升。官方提供的升级路线如下:
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 -> 13.8.8 -> 13.12.15 -> latest 14.0.Z (14.0.12)-> latest 14.1.Z(14.1.8) -> latest 14.Y.Z
本文主要记录使用Docker安装的GitLab的升级过程。初始版本为12.10.6,需要的升级路线如下:
12.10.6 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.8.8 -> 13.12.15 -> 14.0.12->14.1.8 -> 14.5.0
下载docker镜像
1 |
|
启动实例
启动时把配置文件(/etc/gitlab)、数据文件(/var/opt/gitlab)和日志文件(/var/log/gitlab)映射到宿主的环境中,这样删除实例后就能保留目标数据。
1 |
|
恢复数据
本次升级涉及到数据的迁移,原先是采用rpm安装的gitlab,想转到docker中需要迁移,迁移过程如下:
注意:恢复数据只能使用相同的版本恢复,先恢复,后升级。
备份
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24# 在旧服务中运行备份命令
# 备份用户数据(包括用户信息、项目信息、代码),备份文件默认存放到/var/opt/gitlab/backups/目录
# 可通过/etc/gitlab/gitlab.rb文件的gitlab_rails['backup_path']配置进行修改
sudo gitlab-rake gitlab:backup:create
## 备份完成后会出现下面的告警信息:
Creating backup archive: 1616405573_2021_03_22_12.10.6_gitlab_backup.tar ... done
Uploading backup archive to remote storage ... skipped
Deleting tmp directories ... done
done
done
done
done
done
done
done
Deleting old backups ... skipping
Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data
and are not included in this backup. You will need these files to restore a backup.
Please back them up manually.
Backup task is done.
# 提示还需要备份配置信息gitlab.rb 和 密钥信息gitlab-secrets.json,恢复数据时需要使用
sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab-secrets.json /var/opt/gitlab/backups/恢复
1
2
3
4
5
6
7
8
9
10
11
12# 复制备份好的文件和配置、密钥
sudo cp /var/opt/gitlab/backups/gitlab.rb / /home/docker/config
sudo cp /var/opt/gitlab/backups/gitlab-secrets.json / /home/docker/config
sudo cp /var/opt/gitlab/backups/1616405573_2021_03_22_12.10.6_gitlab_backup.tar / /home/docker/data
# 进入gitlab实例
docker exec -i -t gitlab /bin/bash
# 开始恢复数据,输入版本号即可,不需要后面的_gitlab_backup.tar,如下:
gitlab-rake gitlab:backup:restore BACKUP=1623145488_2021_06_08_12.10.6
# 重载gitlab配置
gitlab-ctl reconfigure
升级
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!