【发布时间】:2022-09-29 14:51:11
【问题描述】:
我正在尝试恢复 Gitlab 备份。设置是使用 Docker 容器完成的。使用的 Gitlab 版本是gitlab-ce:10.7.3-ce.0。我经常做的备份来自文件夹:
- /etc/gitlab/
- /var/log/gitlab/
- /var/opt/gitlab/
为了运行 Gitlab Docker 容器,我使用了这个 BASH 命令:
sudo docker run --detach \\
--hostname gitlab.exampledomain.com \\
--publish 8081:80 \\
--name gitlab \\
--restart always \\
--volume /srv/gitlab/config:/etc/gitlab \\
--volume /srv/gitlab/logs:/var/log/gitlab \\
--volume /srv/gitlab/data:/var/opt/gitlab \\
gitlab/gitlab-ce:10.7.3-ce.0
要创建备份,我使用了以下命令:
#!/bin/bash
# Turn off Gitlab.
sudo docker stop gitlab
# Backup Gitlab to tars.
sudo docker run --name temp-gitlab-backup-os \\
-it \\
-v /srv/gitlab/config:/etc/gitlab \\
-v /srv/gitlab/logs:/var/log/gitlab \\
-v /srv/gitlab/data:/var/opt/gitlab \\
-v $(pwd):/backup ubuntu:16.04 sh -c \"tar -cvzf /backup/gitlab.tar.gz /etc/gitlab /var/log/gitlab /var/opt/gitlab\"
# Delete temp container.
sudo docker rm temp-gitlab-backup-os
# Delete temp image.
sudo docker rmi ubuntu:16.04
# Turn on Gitlab.
sudo docker start gitlab
要将备份导入一个空的 Gitlab Docker 容器,我使用了以下命令:
#!/bin/bash
# Turn off Gitlab.
sudo docker stop gitlab
# Import Gitlab backup.
sudo docker run --name temp-gitlab-backup-os \\
-it \\
-v /srv/gitlab/config:/etc/gitlab \\
-v /srv/gitlab/logs:/var/log/gitlab \\
-v /srv/gitlab/data:/var/opt/gitlab \\
-v $(pwd):/backup ubuntu:16.04 sh -c \"tar -xvzf /backup/gitlab.tar.gz\"
# Delete temp container.
sudo docker rm temp-gitlab-backup-os
# Delete temp image.
sudo docker rmi ubuntu:16.04
# Turn on Gitlab.
sudo docker start gitlab
现在,我想再次访问系统。所以我创建了 Gitlab Docker 容器,然后将备份解压缩到上述三个文件夹中。如果我随后运行 Gitlab Docker 容器,它会不断关闭并无休止地重新启动,从而阻止我进行任何访问。我的所有项目都在这个 Gitlab Docker 备份上,我真的很想重新获得访问权限。
- 有什么方法可以从上述备份文件夹中找出使用的 Gitlab Docker 容器版本,以验证它实际上是使用版本
gitlab-ce:10.7.3-ce.0运行的吗? - 有什么方法可以访问我提到的备份文件夹中的项目?数据在那里,但目前我不知道如何导出我的项目。