我在试着恢复Gitlab的备份。安装是使用Docker容器完成的。使用的Gitlab版本是gitlab-ce:10.7.3-ce.0
。我经常做的备份来自文件夹:
要运行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码头备份,我真的想重新获得访问。
是否有任何方法可以从上述备份文件夹中找到已使用的Gitlab容器版本,以验证它实际上是否与版本gitlab-ce:10.7.3-ce.0
发布于 2022-09-29 06:51:11
1
是否可以从上述备份文件夹中找到使用过的Gitlab容器版本,以验证它实际上是在gitlab:10.7.3-ce.0版本下运行的?
是的,您可以使用docker logs <container name>
显示来自容器的所有日志,并将其输送到head
以只显示前10行,这是来自我的容器的输出:
> docker logs gitlab-wiki | head
Thank you for using GitLab Docker Image!
Current version: gitlab-ce=10.7.3-ce.0
/opt/gitlab/embedded/bin/runsvdir-start: line 37: /proc/sys/fs/file-max: Read-only file system
Configure GitLab for your system by editing /etc/gitlab/gitlab.rb file
And restart this container to reload settings.
To do it use docker exec:
docker exec -it gitlab vim /etc/gitlab/gitlab.rb
docker restart gitlab
write /dev/stdout: The pipe is being closed.
如您所见,第二行打印了gitlab版本。
2
,我是否可以访问上述备份文件夹中的项目?数据在那里,但目前我不知道如何导出我的项目。
是的,因为你已经备份了你的数据,你可以克隆你的git回购没有码头。
首先,解压缩备份文件:
tar zxvf /backup/gitlab.tar.gz
您的所有回购应位于:
var/opt/gitlab/git-data/repositories/<namespace>/<repo>.git
但是这些repos是bare repository
,您不能直接使用它们。您需要通过以下命令克隆它:
git clone var/opt/gitlab/git-data/repositories/foo/bar.git foobar
最后,我认为您应该遵循官方文档,使用gitlab-rake gitlab:backup:create
和gitlab-rake gitlab:backup:restore
进行备份和恢复。直接复制文件不是个好主意。
https://stackoverflow.com/questions/72250932
复制相似问题