gitlab 数据备份:
docker exec -t gitlab gitlab-rake gitlab:backup:create
可能谁提示你gitlab 找不到这个容器,这个时候你需要
docker ps 查看gitlab具体的这个ID: CONTAINER ID gitlab 直接用这个ID 替换
在新服务器上安装同一个版本的gitlab
参考官方文档:
使用
Docker swarm
模式安装
配置文件:docker-compose.yml
version: "3.6"
 services:
   gitlab:
     image: gitlab/gitlab-ce:11.8.1-ce-0(这个就是你的版本号,一定要核对好)
     ports:
       - "22:22"
       - "80:80"
       - "443:443"
     volumes:
       - /srv/gitlab/data:/var/opt/gitlab
       - /srv/gitlab/logs:/var/log/gitlab
       - /srv/gitlab/config:/etc/gitlab
     environment:
       GITLAB_OMNIBUS_CONFIG: "from_file('/omnibus_config.rb')"
     configs:
       - source: gitlab
         target: /omnibus_config.rb
     secrets:
       - gitlab_root_password
   gitlab-runner:
     image: gitlab/gitlab-runner:alpine
     deploy:
       mode: replicated
       replicas: 4
 configs:
   gitlab:
     file: ./gitlab.rb
 secrets:
   gitlab_root_password:
     file: ./root_password.txt
怎么查看当前老gitlab的版本号:
docker exec gitlab bash -c "cat /opt/gitlab/embedded/service/gitlab-rails/VERSION"
创建一个gitlab.rb文件,和当前的配置文件一个文件夹下
external_url 'https://my.domain.com/'

gitlab_rails['initial_root_password'] = File.read('/run/secrets/gitlab_root_password')
创建一个 root_password.txt文件,和配置文件一个文件夹下
MySuperSecretAndSecurePass0rd!
上面配置好了后,就是你的root用户密码了
最后启动:
docker stack deploy --compose-file docker-compose.yml mystack
有时候会启动不成功,那么需要查看为什么启动不成功:
使用
sudo docker stack ps gitlab --no-trunc
查看ERROR信息
很大程度上会遇到目录没有创建的问题:
/srv/gitlab/data
/srv/gitlab/logs
/srv/gitlab/config
以上三个目录需要提前创建,不然会启动失败
新的gitlab启动完成后,开始恢复数据
scp 1559548339_2019_06_03_11.0.3_gitlab_backup.tar  root@172.16.77.162:/home/docker/data/gitlab/data/backups
scp -r config/*  root@172.16.77.162:/home/docker/data/gitlab/config/
数据文件和配置文件,都通过scp发送到新的服务器上
开始还原备份:
# 进入容器
docker exec -it gitlab /bin/bash
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 验证
gitlab-ctl status
#恢复数据库
root@git:/# gitlab-rake gitlab:backup:restore BACKUP=1559548339_2019_06_03_11.0.3
Unpacking backup ... tar: 1559548339_2019_06_03_11.0.3_gitlab_backup.tar: Cannot open: Permission denied
tar: Error is not recoverable: exiting now
unpacking backup failed

gitlab-rake gitlab:backup:restore BACKUP=1610709220_2021_01_15_11.8.1
Unpacking backup ... done
Before restoring the database, we will remove all existing
tables to avoid future upgrade problems. Be aware that if you have
custom tables in the GitLab database these tables and all data will be
removed.

Do you want to continue (yes/no)? yes
遇到权限错误,直接给备份的文件开777权限
chmod 777 1559548339_2019_06_03_11.0.3_gitlab_backup.tar #修改权限
再次重试,知道备份恢复完成,重启gitlab
#重启并验证
gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true
不出意外,你的gitlab就迁移完成了
可以登录新的服务器gitlab,进行代码查看
参考链接: