备份数据
# 执行备份命令
docker exec -ti gitlab gitlab-rake gitlab:backup:create
# 看到以下内容则备份成功
2022-10-18 02:49:07 +0000 -- Backup 1666061343_2022_10_18_15.4.2 is done.
# 可以在备份文件夹内看到备份的内容
root@devtool:/data/gitlab/data/backups# ls
1666061343_2022_10_18_15.4.2_gitlab_backup.tar
升级顺序
进入容器查看gitlab的当前版本,我的当前版本为 14.6.2
docker exec -it gitlab cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
14.6.2
Gitlab不能跨大版本升级,需要按照大版本顺序来升级
升级顺序的获取有两个方法:
1.官方网站的升级路径
https://docs.gitlab.com/ee/update/index.html#upgrade-paths
确认升级顺序为:14.6.2 -> 14.9.5 -> 14.10.Z -> 15.0.Z -> 15.4.0 -> latest 15.Y.Z
2.新版本提示的路径
直接部署最新的版本,若无法直接升级,将会在日志中提示需要升级的版本,目前最新版本为15.4.2,顺序如下
部署 15.4.2 提示需要最新的 15.0.X
部署 15.0.4 提示需要最新的 14.10.X
部署 14.10.3 成功,之后依次部署 15.0.4、15.4.2
可以看到官方网站的升级循序需要升级5次,而根据部署时提示只需要升级三次,不知道为什么会有这样的差异,我这里按照提示升级三次成功,目前为止使用正常
如何升级
停止并移除Gitlab容器,按照顺序部署新版本,名称、存储卷、端口等保持和原先一致即可
15.4.2 -> 14.10.3
# 停止并移除容器
docker stop gitlab && docker rm gitlab
# 执行升级命令
docker run -d \
-p 443:443 -p 80:80 -p 22:22 \
--name gitlab --restart always \
-v /data/gitlab/logs:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
-v /data/gitlab/config:/etc/gitlab \
gitlab/gitlab-ce:14.10.3-ce.0
14.10.3 -> 15.0.4
# 停止并移除容器
docker stop gitlab && docker rm gitlab
# 执行升级命令
docker run -d \
-p 443:443 -p 80:80 -p 22:22 \
--name gitlab --restart always \
-v /data/gitlab/logs:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
-v /data/gitlab/config:/etc/gitlab \
gitlab/gitlab-ce:15.0.4-ce.0
15.0.4 -> 15.4.2
# 停止并移除容器
docker stop gitlab && docker rm gitlab
# 执行升级命令
docker run -d \
-p 443:443 -p 80:80 -p 22:22 \
--name gitlab --restart always \
-v /data/gitlab/logs:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
-v /data/gitlab/config:/etc/gitlab \
gitlab/gitlab-ce:15.4.2-ce.0
评论区