前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gitlab-11.1.4继续升级到15.9.3

gitlab-11.1.4继续升级到15.9.3

原创
作者头像
对你无可奈何
修改2023-03-10 18:04:57
1.5K0
修改2023-03-10 18:04:57
举报
文章被收录于专栏:运维专栏运维专栏

背景:

基于:gitlab远古版本备份&还原&升级twang2218/gitlab-ce-zh镜像指支持到了11.1.4

image.png
image.png

准备继续升级一下。继续升级反正就两个思路:

  1. dockerhub找更高版本的汉化版本
  2. 根据https://github.com/twang2218/gitlab-ce-zh自己打包更高版本镜像

反正都是根据https://github.com/sameersbn/docker-gitlab 里面的版本修改吧!

gitlab-11.1.4继续升级

注:后面总结这样成功都是运气,尽量还是按照https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/中推荐的升级顺序操作升级!!

基于dockerhub汉化镜像

dockerhub学来的:

找到了一个其他人基于wwang2218版本的汉化版本:

https://hub.docker.com/search?q=gitlab-ce-zh

image.png
image.png

先尝试一下小版本升级:就到11.11.3吧!

image.png
image.png

修改镜像tag caeret/gitlab-ce-zh:11.11.3

image.png
image.png
docker-compose down
docker-compose up -d
docker logs -f github-gitlab-1
HDkX08eIrA.png
HDkX08eIrA.png
docker exec -it  github-gitlab-1 chown git /var/opt/gitlab/.ssh/authorized_keys
Fj5j1kuZZG.png
Fj5j1kuZZG.png
docker-compose down
docker-compose up -d
docker logs -f github-gitlab-1
idVPHWhYfG.png
idVPHWhYfG.png
docker exec -it  github1-gitlab-1 chmod 2770 -R /var/opt/gitlab/git-data/repositories
docker stop github1-gitlab-1
docker start github1-gitlab-1
 docker logs -f github1-gitlab-1
Mkw1yoDni9.png
Mkw1yoDni9.png
8I4bbpawPq.png
8I4bbpawPq.png
ja1JpiRp3X.png
ja1JpiRp3X.png
UD7BAJJotx.png
UD7BAJJotx.png
zJ3uSMfyCX.png
zJ3uSMfyCX.png
EmzNf4R8nd.png
EmzNf4R8nd.png
uMCdnxLJ2k.png
uMCdnxLJ2k.png

其他的瞎尝试

天真的修改tag制作镜像

天真的以为修改一下Dockerfile中镜像版本就可以做一个高版本的镜像....尝试一下自己制作镜像......

对比了一下10.6 11.1的Dockerfile觉得只是修改了版本tag:

git clone https://github.com/twang2218/gitlab-ce-zh
cd gitlab-ce-zh/
diff 10.6 11.1
image.png
image.png

尝试一下 12.10.6的基础镜像的的构建(根据sameersbn的仓库为例子。当然了这样的做法是错 ,强调一下,升级也是先升级到12.0的版本再继续升级!)

image.png
image.png

做一个12.10.6的镜像试试?

image.png
image.png

copy 11.1文件夹 生成一个12.10.6的文件夹 ,替换Dockerfile中的tag:

cp -Ra 11.1 12.10.6
cd 12.10.6/
sed -i "s/11.1.4/12.10.6/g" Dockerfile
cat Dockerfile
image.png
image.png
docker build -t xxxxx/xxxxx/gitlab-ce-zh:12.10.6 .
image.png
image.png

node版本过低?下次达版本13的时候考虑一下升级node一下?

image.png
image.png

来不及更多考虑,发现这样打包是不对的...原有的gitlab仓库中并没有汉化的包这些资源的........

image.png
image.png

此方法放弃......就算是一次尝试吧!

修改为gitlab镜像为官方or sameersbn镜像也都失败了

也天真尝试了一下直接修改docker-compose.yaml中镜像tag 为官方or sameersbn的镜像....当然了也失败告终,去新怎么会事情感觉还是很费力!怎么破?继续偷懒的方式.....我总可以备份gitlab 11.11.3的版本然后导入官方or sameersbn 启动的gitlab服务吧?

备份汉化gitlab11.11.3版本仓库

进入gitlab容器备份仓库

进入gitlab容器:

docker ps -a
docker exec -it github1-gitlab-1 bash
image.png
image.png

执行备份命令:

gitlab-rake gitlab:backup:create
image.png
image.png
image.png
image.png

等待生成备份压缩包:

image.png
image.png
image.png
image.png

将备份压缩包同步到另外一个文件夹

为了区分新建了一个github2的文件夹!准备在这里操作,rclone的安装,前面都有的!

rclone sync /nfs10/data/github1/gitlab/backups/1678349888_2023_03_09_11.11.3_gitlab_backup.tar /nfs10/data/github2/gitlab/backups/ -Pvv --transfers 32 --checkers 64 --copy-links --local-no-check-updated
image.png
image.png

看上图发现一个很好玩的问题...8.5.8的古老版本的备份压缩包有20g ,同样的仓库 11.11.3的备份压缩包只有13G了。这样算下来能剩下不少存储资源呢?

启动基于sameersbn镜像的gitlab并还原数据

继续进入github1目录.复制docker-compose.yaml文件到github2文件夹。并停止运行的gitlab服务:

cp docker-compose.yaml ../github2
docker-compose down
image.png
image.png

进入github2目录 创建postgresql redis文件夹:

cd ../github2
mkdir postgresql redis

参照https://github.com/sameersbn/docker-gitlab.git.仓库中11.11.3的版本仓库中镜像tag修改docker-compose.yaml文件!

image.png
image.png
https://github.com/sameersbn/docker-gitlab/blob/11.11.3/docker-compose.yml
image.png
image.png
image.png
image.png

github2目录下启动服务:

docker-compose up -d 
image.png
image.png

进入容器查看挂载备份文件:

docker exec -it github2-gitlab-1 bash
cd /home/git/data/backups/
ls
image.png
image.png

but sameersbn的gitlab镜像不能执行gitlab-rake的命令

image.png
image.png

参照github仓库中文档:

image.png
image.png
docker-compose run --rm gitlab app:rake gitlab:backup:restore BACKUP=1678349888_2023_03_09_11.11.3
image.png
image.png

当时不记得有什么问题了,还是选择了使用官方镜像!

当然了还嫌弃麻烦? 那我直接挂载官方的镜像了:

docker run  -itd   -p 80:80  -p 10022:22  -v /data/data/github3/etc:/etc/gitlab   -v /data/data/github3/log:/var/log/gitlab  -v /data/data/github3/gitlab:/var/opt/gitlab  --restart always  --privileged=true  --name gitlab  gitlab/gitlab-ce:11.11.3-ce.0
docker exec -it gitlab bash
cd /var/opt/gitlab/backups/
gitlab-rake gitlab:backup:restore BACKUP:1678349888_2023_03_09_11.11.3_gitlab_backup.tar
image.png
image.png
image.png
image.png

等待漫长还原过程........

image.png
image.png

用原有账户登陆验证:

image.png
image.png
image.png
image.png

版本已经成功恢复到官方11.11.3版本:

image.png
image.png

gitlab11.11.3升级到gitlab12版本

正常升级流程:

正常的流程应该是11.11.3-12.0.12-12.1.17-12.10.14。

image.png
image.png

我偷懒尝试了一下直接到12.10.14

不推荐的个人偷懒升级到12最新版本

首先停止gitlab服务:

docker stop gitlab && docker  rm gitlab

启动服务

只是修改了启动 shell的镜像tag

 docker run  -itd   -p 80:80  -p 10022:22  -v /data/data/github3/etc:/etc/gitlab   -v /data/data/github3/log:/var/log/gitlab  -v /data/data/github3/gitlab:/var/opt/gitlab  --restart always  --privileged=true  --name gitlab  gitlab/gitlab-ce:12.10.14-ce.0
image.png
image.png
image.png
image.png

等待pod running .....

旧账户登陆gitlab验证

image.png
image.png
image.png
image.png

版本也算是升级成功了:

image.png
image.png
image.png
image.png

git升级13的过程

准备采用标准的官方推荐升级:

image.png
image.png

gitlab 12.10.14升级到13.0.14

image.png
image.png

停止容器修改镜像tag启动:

docker stop gitlab && docker  rm gitlab
docker run  -itd   -p 80:80  -p 10022:22  -v /data/data/github3/etc:/etc/gitlab   -v /data/data/github3/log:/var/log/gitlab  -v /data/data/github3/gitlab:/var/opt/gitlab  --restart always  --privileged=true  --name gitlab  gitlab/gitlab-ce:13.0.14-ce.0
docker logs -f gitlab
image.png
image.png
image.png
image.png

历史老账户登陆web验证仓库升级成功到13.0.14版本:

image.png
image.png
image.png
image.png

gitlab继续升级到13.1.11版本

继续停止删除旧的gitlab服务,启动新版本gitlab服务:

docker stop gitlab && docker  rm gitlab
docker run  -itd   -p 80:80  -p 10022:22  -v /data/data/github3/etc:/etc/gitlab   -v /data/data/github3/log:/var/log/gitlab  -v /data/data/github3/gitlab:/var/opt/gitlab  --restart always  --privileged=true  --name gitlab  gitlab/gitlab-ce:13.1.11-ce.0
image.png
image.png

查看gitab服务启动日志:

docker logs -f gitlab
image.png
image.png

等待服务启动,账户登陆web验证版本成功升级到13.1.11版本:

image.png
image.png
image.png
image.png
image.png
image.png

gitlab 升级到13.8.8-ce.0

继续停止删除旧的gitlab服务,修改镜像tag启动服务:

docker stop gitlab && docker  rm gitlab
docker run  -itd   -p 80:80  -p 10022:22  -v /data/data/github3/etc:/etc/gitlab   -v /data/data/github3/log:/var/log/gitlab  -v /data/data/github3/gitlab:/var/opt/gitlab  --restart always  --privileged=true  --name gitlab  gitlab/gitlab-ce:13.8.8-ce.0
docker logs -f gitlab
image.png
image.png

成功升级到13.8.8版本:

image.png
image.png

gitlab升级到13.12.15

继续停止删除旧的gitlab服务,修改镜像tag启动服务:

docker stop gitlab && docker  rm gitlab
docker run  -itd   -p 80:80  -p 10022:22  -v /data/data/github3/etc:/etc/gitlab   -v /data/data/github3/log:/var/log/gitlab  -v /data/data/github3/gitlab:/var/opt/gitlab  --restart always  --privileged=true  --name gitlab  gitlab/gitlab-ce:13.12.15-ce.0
docker ps
docker logs -f gitlab

web 验证版本升级成功:

image.png
image.png

当然了可以在设置里面修改一下语言为简体中文:

image.png
image.png

标准的升级方式太慢了....尝试流氓一下14

gitlab 14升级

14.0.12-ce.0 异常

docker stop gitlab && docker  rm gitlab
docker run  -itd   -p 80:80  -p 10022:22  -v /data/data/github3/etc:/etc/gitlab   -v /data/data/github3/log:/var/log/gitlab  -v /data/data/github3/gitlab:/var/opt/gitlab  --restart always  --privileged=true  --name gitlab  gitlab/gitlab-ce:14.0.12-ce.0
docker ps
docker logs -f gitlab
image.png
image.png
image.png
image.png

https://yangyq.net/2022/05/gitlab-update-error.html

image.png
image.png
image.png
image.png

各种尝试失败.........

采用了更流氓的方式......继续备份gitlab 13.12.15.本地rpm包安装还原........

docker gitlab13.12.15备份

docker stop gitlab && docker  rm gitlab
docker run  -itd   -p 80:80  -p 10022:22  -v /data/data/github3/etc:/etc/gitlab   -v /data/data/github3/log:/var/log/gitlab  -v /data/data/github3/gitlab:/var/opt/gitlab  --restart always  --privileged=true  --name gitlab  gitlab/gitlab-ce:13.12.15-ce.0
docker exec -it gitlab bash 
gitlab-rake gitlab:backup:create
image.png
image.png

rpm包安装gitllab 13.12.15

https://packages.gitlab.com/app/gitlab/gitlab-ce/search 根据操作系统下载对应版本rpm包(我这里操作系统rocky8就下载了el8的rpm包):

image.png
image.png
image.png
image.png

下载很漫长,我是外网下载扔到对象存储加速下载了......当然了网好了也可以修改yum源,yum安装...文件很大,没有访问国外网站建议下载rpm包!

rpm -ivh gitlab-ce-13.12.15-ce.0.el8.x86_64.rpm 
image.png
image.png

停止docker gitlab服务:

docker stop gitlab && docker  rm gitlab

根据控制台提示执行reconfigure:

gitlab-ctl  reconfigure
image.png
image.png
image.png
image.png

又一次在此CVM安装了reclone.然后同步到了/var/opt/gitlab/backups(gitlab 15.8 on rocky 8中积累的)目录,当然了可以修改gitlab.rb or 修改成其他文件目录:

 rclone sync /data/data/github3/gitlab/backups/1678418950_2023_03_10_13.12.15_gitlab_backup.tar /var/opt/gitlab/backups -Pvv --transfers 32 --checkers 64 --copy-links --local-no-check-updated
image.png
image.png

还原gitlab备份仓库:

gitlab-rake gitlab:backup:restore BACKUP:1678418950_2023_03_10_13.12.15_gitlab_backup.tar
image.png
image.png
gitlab-ctl start
image.png
image.png

web验证

image.png
image.png

当然也可以这样看版本:

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

gitlab升级14.0.12版本

rpm方式仍然是,卸载旧的版本:

rpm -evh `rpm -qa gitlab-ce`
image.png
image.png

安装rpm -ivh gitlab-ce-14.0.12-ce.0.el8.x86_64.rpm包(下载方式同上面步骤):

rpm -ivh gitlab-ce-14.0.12-ce.0.el8.x86_64.rpm
image.png
image.png

reconfigure and start 服务:

gitlab-ctl reconfigure
gitlab-ctl start 
image.png
image.png

web验证版本升级:

image.png
image.png

gitlab升级到14.10.5版本

过程同上:

停止服务:

gitlab-ctl stop
image.png
image.png

卸载rpm包

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
rpm -evh `rpm -qa gitlab-ce`
image.png
image.png

安装gitlab-ce-14.10.5-ce.0.el8.x86_64.rpm

rpm -ivh gitlab-ce-14.10.5-ce.0.el8.x86_64.rpm
image.png
image.png
image.png
image.png

配置 and 启动服务:

gitlab-ctl reconfigure
gitlab-ctl start 
image.png
image.png

web验证:

image.png
image.png
image.png
image.png
当然了 这里还额外测试了一下git clone ssh某一个仓库:
image.png
image.png

此cvm 的ssh 密钥在老的gitlab服务器添加过,仍能正常使用!

gitlab 15升级:

gitlab升级到15.0.5版本:

gitlab-ctl stop
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
rpm -evh `rpm -qa gitlab-ce`
image.png
image.png

下载并安装rpm包:

image.png
image.png
rpm -ivh gitlab-ce-15.0.5-ce.0.el8.x86_64.rpm 
image.png
image.png
image.png
image.png

直接restart一下 ?看着没有让reconfigure!

sudo gitlab-ctl restart
image.png
image.png
image.png
image.png
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
image.png
image.png

gtllab升级到15.9.3

停止卸载gitlab服务

sudo gitlab-ctl stop
rpm -evh `rpm -qa gitlab-ce`
image.png
image.png

安装gitlab-ce-15.9.3-ce.0.el8.x86_64.rpm包:

rpm -ivh gitlab-ce-15.9.3-ce.0.el8.x86_64.rpm
image.png
image.png

重启服务,确认版本升级成功:

sudo gitlab-ctl restart
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
image.png
image.png
image.png
image.png

clone尝试 依然成功,基本完成.......

image.png
image.png

总结:

  1. 基础镜像还是使用官方镜像......
  2. 升级过程以官方推荐路线为准
  3. 要经常更新升级版本,起码跟着大版本,不要落后主线版本太多,像是为这升级各种流程操作差不多用了两天时间。
  4. 其他关于本版本gitlab操作可以参考gitlab 15.8 on rocky 8

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景:
  • gitlab-11.1.4继续升级
    • 基于dockerhub汉化镜像
      • 其他的瞎尝试
        • 天真的修改tag制作镜像
        • 修改为gitlab镜像为官方or sameersbn镜像也都失败了
      • 备份汉化gitlab11.11.3版本仓库
        • 进入gitlab容器备份仓库
        • 将备份压缩包同步到另外一个文件夹
        • 启动基于sameersbn镜像的gitlab并还原数据
    • gitlab11.11.3升级到gitlab12版本
      • 正常升级流程:
        • 不推荐的个人偷懒升级到12最新版本
          • 首先停止gitlab服务:
          • 启动服务
          • 旧账户登陆gitlab验证
      • git升级13的过程
        • gitlab 12.10.14升级到13.0.14
          • gitlab继续升级到13.1.11版本
            • gitlab 升级到13.8.8-ce.0
              • gitlab升级到13.12.15
              • gitlab 14升级
                • 14.0.12-ce.0 异常
                  • docker gitlab13.12.15备份
                    • rpm包安装gitllab 13.12.15
                      • gitlab升级14.0.12版本
                        • gitlab升级到14.10.5版本
                        • gitlab 15升级:
                          • gitlab升级到15.0.5版本:
                            • gtllab升级到15.9.3
                            • 总结:
                            相关产品与服务
                            容器镜像服务
                            容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档