乐趣区

关于go:gitlab1114继续升级到1593

背景:

基于:gitlab 远古版本备份 & 还原 & 降级,twang2218/gitlab-ce-zh 镜像指反对到了 11.1.4
筹备持续降级一下。持续降级反正就两个思路:

  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

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

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

docker-compose down
docker-compose up -d
docker logs -f github-gitlab-1
docker exec -it  github-gitlab-1 chown git /var/opt/gitlab/.ssh/authorized_keys
docker-compose down
docker-compose up -d
docker logs -f github-gitlab-1
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

其余的瞎尝试

天真的批改 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

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

做一个 12.10.6 的镜像试试?

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
docker build -t xxxxx/xxxxx/gitlab-ce-zh:12.10.6 .

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

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

此办法放弃 …… 就算是一次尝试吧!

批改为 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

执行备份命令:

gitlab-rake gitlab:backup:create

期待生成备份压缩包:

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

为了辨别新建了一个 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

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

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

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

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

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

cd ../github2
mkdir postgresql redis

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

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

github2 目录下启动服务:

docker-compose up -d 

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

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

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

参照 github 仓库中文档:

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

过后不记得有什么问题了,还是抉择了应用官网镜像!
当然了还厌弃麻烦?那我间接挂载官网的镜像了:

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

期待漫长还原过程 ……..

用原有账户登陆验证:

版本曾经胜利复原到官网 11.11.3 版本:

gitlab11.11.3 降级到 gitlab12 版本

失常降级流程:

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

我偷懒尝试了一下间接到 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

期待 pod running …..

旧账户登陆 gitlab 验证

版本也算是降级胜利了:

git 降级 13 的过程

筹备采纳规范的官网举荐降级:

gitlab 12.10.14 降级到 13.0.14

进行容器批改镜像 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

历史老账户登陆 web 验证仓库降级胜利到 13.0.14 版本:

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

查看 gitab 服务启动日志:

docker logs -f gitlab

期待服务启动,账户登陆 web 验证版本胜利降级到 13.1.11 版本:

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

胜利降级到 13.8.8 版本:

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 验证版本升级胜利:

当然了能够在设置外面批改一下语言为简体中文:

规范的降级形式太慢了 …. 尝试流氓一下 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

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

各种尝试失败 ………
采纳了更流氓的形式 …… 持续备份 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

rpm 包装置 gitllab 13.12.15

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

下载很漫长,我是外网下载扔到对象存储减速下载了 …… 当然了网好了也能够批改 yum 源,yum 装置 … 文件很大,没有迷信上网倡议下载 rpm 包!

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

进行 docker gitlab 服务:

docker stop gitlab && docker  rm gitlab

依据控制台提醒执行 reconfigure:

gitlab-ctl  reconfigure

又一次在此 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

还原 gitlab 备份仓库:

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

web 验证

当然也能够这样看版本:

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

gitlab 降级 14.0.12 版本

rpm 形式依然是, 卸载旧的版本:

rpm -evh `rpm -qa gitlab-ce`

装置 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

reconfigure and start 服务:

gitlab-ctl reconfigure
gitlab-ctl start 

web 验证版本升级:

gitlab 降级到 14.10.5 版本

过程同上:
进行服务:

gitlab-ctl stop

卸载 rpm 包

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

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

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

配置 and 启动服务:

gitlab-ctl reconfigure
gitlab-ctl start 

web 验证:

当然了 这里还额定测试了一下 git clone ssh 某一个仓库:
此 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`

下载并装置 rpm 包:

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

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

sudo gitlab-ctl restart

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

gtllab 降级到 15.9.3

进行卸载 gitlab 服务

sudo gitlab-ctl stop
rpm -evh `rpm -qa gitlab-ce`

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

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

重启服务,确认版本升级胜利:

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

clone 尝试 仍然胜利,根本实现 …….

总结:

  1. 根底镜像还是应用官网镜像 ……
  2. 降级过程以官网举荐路线为准
  3. 要常常更新降级版本,起码跟着大版本,不要落后主线版本太多,像是为这降级各种流程操作差不多用了两天工夫。

其余对于本版本 gitlab 操作能够参考 gitlab 15.8 on rocky 8

退出移动版