创建数据备份
Docker 方式下的 GitLab 备份操作基本一致,具体可参考 官方文档
GitLab 备份一般需要备份 配置文件
和 代码数据
,备份时记得备份配置文件。
因为 Gitlab 密钥文件-此密钥包含了数据库加密密钥和密钥变量,如恢复不了,那之前的用户密码就无法访问,或打开项目时报 500 错误。
另外做服务器迁移操作时,可能服务器的域名或 IP 与之前的不一样,此时需要修改 gitlab.rb
文件的 url 参数。
1)配置文件备份,可以直接修改对应的配置项启用
| $ sudo docker exec -it gitlab vim /etc/gitlab/gitlab.rb
### Backup Settings
###! Docs: https://docs.gitlab.com/omnibus/settings/backups.html
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_archive_permissions'] = 0644
gitlab_rails['backup_keep_time'] = 604800
|
启动自动备份功能,定义输出路径、生成文件权限和保留天数(7天=604800秒)
2)另外可手动拷贝或直接执行命令导出至指定路径
| # 备份的配置文件gitlab.rb gitlab-secrets.json trusted-certs
# 通过命令备份配置文件,自动保存至config_backup中,也可使用--backup-path重新定义
$ docker exec -it gitlab gitlab-ctl backup-etc && cd /etc/gitlab/config_backup
$ docker exec -it gitlab gitlab-ctl backup-etc --backup-path <DIRECTORY>
|
3)备份代码数据,先停止服务,保证数据完整性
| $ docker exec -it gitlab gitlab-ctl stop unicorn
$ docker exec -it gitlab gitlab-ctl stop sidekiq
|
| $ docker exec -it gitlab gitlab-rake gitlab:backup:create
Creating backup archive: 1677147985_2023_02_23_13.3.5_gitlab_backup.tar ... done
...
Backup task is done.
$ docker exec -it gitlab ls /var/opt/gitlab/backups/
1677147985_2023_02_23_13.3.5_gitlab_backup.tar
|
备份完成后,可在 /var/opt/gitlab/backups/
查看到备份文件,重新启动服务即可正常使用
| $ docker exec -it gitlab gitlab-ctl restart
|