迁移
- 检查gitlab是否有问题
docker compose -f /home/wenzexu/app.yaml exec gitlab gitlab-rake gitlab:check
docker compose -f /home/wenzexu/app.yaml exec gitlab gitlab-rake gitlab:geo:check
- 记录当前Gitlab的容器镜像版本号(可以直接在UI中查看):
docker compose -f /home/wenzexu/app.yaml exec gitlab cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
- 备份数据
- 关闭安装前数据库自动备份:
docker compose -f /home/wenzexu/app.yaml exec gitlab touch /etc/gitlab/skip-auto-backup
mkdir ./gitlab-bak
docker compose -f /home/wenzexu/app.yaml exec gitlab gitlab-backup create
docker compose -f /home/wenzexu/app.yaml cp gitlab:/var/opt/gitlab/backups/<_gitlab_backup.tar文件> ./gitlab-bak/
docker compose -f /home/wenzexu/app.yaml cp gitlab:/etc/gitlab/gitlab.rb ./gitlab-bak/
docker compose -f /home/wenzexu/app.yaml cp gitlab:/etc/gitlab/gitlab-secrets.json ./gitlab-bak/
docker compose -f /home/wenzexu/app.yaml cp gitlab-runner:/etc/gitlab-runner/config.toml ./gitlab-runner-bak/
- 双重备份:
tar -czvf gitlab-aux.tar.gz ./app/gitlab
; tar -czvf gitlab-runner-aux.tar.gz ./app/gitlab-runner
, 下载这两个文件
- 将
./gitlab-bak
打包为.tar.gz
文件: tar -czvf gitlab-bak.tar.gz gitlab-bak
- 将
./gitlab-runner-bak
打包为.tar.gz
文件: tar -czvf gitlab-runner-bak.tar.gz gitlab-runner-bak
- 在新机器上上传
gitlab-bak.tar.gz
, gitlab-runner-bak.tar.gz
文件并解压: tar -xzvf gitlab-bak.tar.gz && tar -xzvf gitlab-runner-bak.tar.gz
- 启动gitlab服务和gitlab-runner服务:
docker compose -f /home/wenzexu/app.yaml up -d gitlab gitlab-runner
- 恢复数据
chmod 777 ./gitlab-bak/<_gitlab_backup.tar文件>
docker compose -f /home/wenzexu/app.yaml exec gitlab gitlab-ctl stop unicorn
docker compose -f /home/wenzexu/app.yaml exec gitlab gitlab-ctl stop sidekiq
docker compose -f /home/wenzexu/app.yaml cp ./gitlab-bak/<_gitlab_backup.tar文件> gitlab:/var/opt/gitlab/backups/
docker compose -f /home/wenzexu/app.yaml cp ./gitlab-bak/gitlab-secrets.json gitlab:/etc/gitlab/
docker compose -f /home/wenzexu/app.yaml cp ./gitlab-bak/gitlab.rb gitlab:/etc/gitlab/
docker compose -f /home/wenzexu/app.yaml exec gitlab gitlab-rake gitlab:backup:restore
docker compose -f /home/wenzexu/app.yaml exec gitlab gitlab-ctl start
docker compose -f /home/wenzexu/app.yaml cp ./gitlab-runner-bak/config.toml gitlab-runner:/etc/gitlab-runner/
docker compose -f /home/wenzexu/app.yaml restart gitlab-runner