docker里gitlab的备份与恢复

1.执行备份命令

方法①:

docker exec -it gitlab bash进入容器

gitlab-rake gitlab:backup:create 生成备份文件tar包 eg:



方法②:

直接在宿主机执行

docker exec gitlab bash -c 'gitlab-rake gitlab:backup:create'

2.拷贝原有容器里/etc/gitlab目录下的gitlab.rb和gitlab-secrets.json

因涉及敏感数据(个人仓库地址等),gitlab不会自动备份,需手动备份

 

3.在新容器宿主机下拉取旧容器同版本镜像(新旧容器镜像需保持一致)

 

4.先docker run让容器跑起来

 

5.把第一步获得的tar包复制到容器目录/var/opt/gitlab/backups/对应挂载目录下

并用chmod -R 755 [tar包] 赋予执行权限

 

6.进入容器,进入到/var/opt/gitlab/backups/目录下,看到备份的tar包

先执行命令停止相关数据连接服务

# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

再执行命令gitlab-rake gitlab:backup:restore BACKUP=[tar数字部分] eg:158158321_2020_02_13_12.5.4

出现交互界面写yes

 

7.把第二步拷贝的gitlab.rb和gitlab-secrets.json覆盖到相应挂载目录下(对应容器里的/etc/gitlab)

容器会自己生成这俩个文件,所以需要覆盖。

 

8.启动gitlab

gitlab-ctl start(容器里)

 

如果要实现自动备份,在宿主机用crontab -e写一个定时执行脚本任务

把第一步方法二的命令写入脚本即可

修改/etc/gitlab/gitlab.rb的gitlab

把gitlab_rails['backup_keep_time'] = 604800的注释去掉

604800意味着备份文件保留7天(毫秒为单位)

你可能感兴趣的:(故障修复)