一.下载镜像
迁移代码仓库需要跟原仓库保持版本一致,准备docker环境略,跑docker镜像出错需要关闭/etc/selinux/config略,本文只记录迁移方式。
推送到了百度网盘,gitlab版本如下13.12.3
链接: https://pan.baidu.com/s/1AgmoehTHXtrglCi6x9BOMA?pwd=44g8
二.安装
#创建好映射的目录,待会映射镜像使用 mkdir -p /home/gitlab/config && mkdir -p /home/gitlab/logs && mkdir -p /home/gitlab/data #执行命令,此处映射宿主机端口分别为10000 10022 8443 docker run -d --hostname master \ --publish 8443:443 --publish 10000:80 --publish 10022:22 \ --name gitlab --restart always --volume /home/gitlab/config:/etc/gitlab \ --volume /home/gitlab/logs:/var/log/gitlab \ --volume /home/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest
三 .迁移
1.将备份的tar文件拷贝到容器内,如下命令
docker cp /root/1668396273_2022_11_14_13.12.3_gitlab_backup.tar e5498b86e5bd:/var/opt/gitlab/backups/
2.进入gitlab容器
docker exec -it e5498b86e5bd /bin/sh
3.执行迁移命令
# 备份gitlab gitlab-rake gitlab:backup:create #开始恢复数据 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq gitlab-ctl status gitlab-rake gitlab:backup:restore BACKUP=/var/opt/gitlab/backups/1668396273_2022_11_14_13.12.3 #本人直接跳过重启服务验证等操作,直接重启服务器,耐心等待gitlab容器运行起来,原有gitlab账号密码不变,git提交记录和仓库分支信息全部迁移完毕 gitlab-ctl start 恢复命令完成后,可以check检查一下恢复情况 gitlab-rake gitlab:check SANITIZE=true
4.如果忘记了gitlab密码
#进入容器内部,来重置密码即可 gitlab-rails console user = User.where(username: 'root').first user.password = "12345678" user.password_confirmation = "12345678" user.save!