背景:
基于:gitlab远古版本备份&还原&降级,twang2218/gitlab-ce-zh镜像指反对到了11.1.4
筹备持续降级一下。持续降级反正就两个思路:
- dockerhub找更高版本的汉化版本
- 依据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 downdocker-compose up -ddocker logs -f github-gitlab-1
docker exec -it github-gitlab-1 chown git /var/opt/gitlab/.ssh/authorized_keys
docker-compose downdocker-compose up -ddocker logs -f github-gitlab-1
docker exec -it github1-gitlab-1 chmod 2770 -R /var/opt/gitlab/git-data/repositoriesdocker stop github1-gitlab-1docker 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-zhcd 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.6cd 12.10.6/sed -i "s/11.1.4/12.10.6/g" Dockerfilecat 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 -adocker 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 ../github2docker-compose down
进入github2目录 创立postgresql redis文件夹:
cd ../github2mkdir 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 bashcd /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.0docker exec -it gitlab bashcd /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 gitlabdocker 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.0docker logs -f gitlab
历史老账户登陆web验证仓库降级胜利到13.0.14版本:
gitlab持续降级到13.1.11版本
持续进行删除旧的gitlab服务,启动新版本gitlab服务:
docker stop gitlab && docker rm gitlabdocker 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 gitlabdocker 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.0docker logs -f gitlab
胜利降级到13.8.8版本:
gitlab降级到13.12.15
持续进行删除旧的gitlab服务,批改镜像tag启动服务:
docker stop gitlab && docker rm gitlabdocker 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.0docker psdocker logs -f gitlab
web 验证版本升级胜利:
当然了能够在设置外面批改一下语言为简体中文:
规范的降级形式太慢了....尝试流氓一下14
gitlab 14降级
14.0.12-ce.0 异样
docker stop gitlab && docker rm gitlabdocker 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.0docker psdocker 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 gitlabdocker 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.0docker 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 reconfiguregitlab-ctl start
web验证版本升级:
gitlab降级到14.10.5版本
过程同上:
进行服务:
gitlab-ctl stop
卸载rpm包
cat /opt/gitlab/embedded/service/gitlab-rails/VERSIONrpm -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 reconfiguregitlab-ctl start
web验证:
当然了 这里还额定测试了一下git clone ssh某一个仓库:
此cvm 的ssh 密钥在老的gitlab服务器增加过,仍能失常应用!
gitlab 15降级:
gitlab降级到15.0.5版本:
gitlab-ctl stopcat /opt/gitlab/embedded/service/gitlab-rails/VERSIONrpm -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 stoprpm -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 restartcat /opt/gitlab/embedded/service/gitlab-rails/VERSION
clone尝试 仍然胜利,根本实现.......
总结:
- 根底镜像还是应用官网镜像......
- 降级过程以官网举荐路线为准
- 要常常更新降级版本,起码跟着大版本,不要落后主线版本太多,像是为这降级各种流程操作差不多用了两天工夫。
其余对于本版本gitlab操作能够参考gitlab 15.8 on rocky 8