docker升级gitlab

  昨天在家部署了gitlab,版本居然是15.10,公司版本却是14.6,升级一波。

官方文档:

  https://docs.gitlab.com/ee/update/#upgrading-without-downtime

官方文档总结:

  文档介绍需要按升级路径拉取镜像。

  经我概览,只需备份etc、log、opt三个文件夹,而且都早已挂载在宿主机,无所谓,随便升

  另外,有正在运行的CI/CD作业需要处理一下,因为我的gitlab还没有这些,不能演示,请参考官网。

开始:

  #1.查看gitlab当前版本

docker exec -it gitlab cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

 我这显示14.6.1

  #2.上DockerHub查找最新版本

https://hub.docker.com/r/gitlab/gitlab-ce/tags,不要直接拉取latest,因为不会跨版本升级

看了一下,最新版是15.10.3-ce.0,因为我的版本是14.6,需要先升级至14.10.X最新版,再升级至15.0.X最新版,才能再升级至当前最新的15.10.3-ce.0,

至于我是从哪看的,可以自行运行最新镜像,容器会不断重启,看一下log就知道了。

根据搜索记录显示,15.0.X最新版本为:15.0.5-ce.0,14.10.X是14.10.5-ce.0

这个升级路线可以直接docker运行最新镜像查logs,慢慢倒推,也可以自己百度清楚,提前把需要的镜像pull下来,一个2G多,也挺费时间的

  #3.查看gitlab容器ID

docker ps

  #4.暂停并删除gitlab容器

删除前需确认一下配置文件和数据是否已挂载,一般都会配置挂载路径

docker stop <CONTAINERID>
docker rm <CONTAINERID>

头铁不弄也行,除非你想给容器起不同的名字,用不同的端口号,不然肯定运行不起来

  #5.运行gitlab网站14.10.X最新的gitlab镜像

sudo docker run --detach \
  --name gitlab \
  --restart always \
  -p 9080:80 \
  -p 9022:22 \
  -v /home/gitlab/etc:/etc/gitlab  \
  -v /home/gitlab/log:/var/log/gitlab \
  -v /home/gitlab/opt:/var/opt/gitlab \
  gitlab/gitlab-ce:14.10.5-ce.0

注意:没有提前pull也没关系,他会自行拉取gitlab官网的镜像。
注意:既然是升级那挂载目录千万别错了,要跟之前的目录一样。

解释:

sudo:以管理员权限运行,如果是root账号无所谓

--detach:可简写成-d,后台运行

--name:容器名

-v:挂载,左边是宿主机目录,右边是容器内目录

gitlab/gitlab-ce:拉取gitlab的社区版

  #6.等待gitlab启动完成

这个时候浏览器访问显示无法访问别慌,输入docker ps,会看到gitlab的状态是starting,等他完成

   #7.重复开局步骤查看当前版本

先浏览器访问一下有没有启动成功,我这是成功了。然后查询版本为14.10.5

  #8.暂停、删除容器,运行下一版本15.0.X

查看是否启动成功,然后再把容器暂停,删除,运行新版本,命令在第5步,只需把结尾的版本号换一下就行

  #9.暂停、删除容器,运行当前最新版本15.10.3-ce.0

再暂停,删除,运行,然后访问页面,root登录,仪表盘查看版本,可以看到版本变成最新的了。至于为啥步骤这么奇怪,必须每个版本都得运行一下,我也不知道,但确实跨版本升级会报错

  #10.删除旧版本镜像,释放空间

docker rmi ImageID

结束

posted @ 2023-04-18 14:21  戈凹高  阅读(567)  评论(0编辑  收藏  举报