Skip to content

迁移

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

采用 CC BY-NC 4.0 许可证发布