一、数据的备份
1.进入容器
docker exec -it gitlab /bin/bash
2、执行备份命令
gitlab-rake gitlab:backup:create
默认将备份文件保存至/var/opt/gitlab/backups/
3. 将json和rb文件也复制到备份目录下注意
此备份不会备份json文件和rb文件,需要手动复制!!!
1、exit退出容器,将备份文件拉取到宿主机:
docker cp gitlab:var/opt/gitlab/backups/1671245938_2022_12_17_14.6.1_gitlab_backup.tar /home/backups/
2、将json和rb文件也复制到备份目录下:
docker cp gitlab:/etc/gitlab/gitlab-secrets.json /home/backups/
docker cp gitlab:/etc/gitlab/gitlab.rb /home/backups/
至此,备份完成
二、数据的恢复
我们启动新的容器,然后将刚才备份的文件拷贝到容器里,后面两个文件直接覆盖即可
docker cp /home/backups/1671245938_2022_12_17_14.6.1_gitlab_backup.tar gitlab:/var/opt/gitlab/backups/
docker cp /home/backups/gitlab-secrets.json gitlab:/etc/gitlab/
docker cp /home/backups/gitlab.rb gitlab:/etc/gitlab/
拷贝完之后,我们进入容器,进入备份目录,执行如下命令
gitlab-rake gitlab:backup:restore BACKUP=1671245938_2022_12_17_14.6.1
如果没有权限,则执行
chmod 777 文件名
恢复之后,我们重新加载配置,并重启gitlab
gitlab-ctl reconfigure
gitlab-ctl restart