首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >恢复Gitlab码头设置

恢复Gitlab码头设置
EN

Stack Overflow用户
提问于 2022-05-15 18:03:29
回答 1查看 101关注 0票数 1

我在试着恢复Gitlab的备份。安装是使用Docker容器完成的。使用的Gitlab版本是gitlab-ce:10.7.3-ce.0。我经常做的备份来自文件夹:

  • /etc/gitlab/
  • /var/log/gitlab/
  • /var/opt/gitlab/

要运行Gitlab Docker容器,我使用了以下BASH命令:

代码语言:javascript
运行
复制
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

要创建备份,我使用了以下命令:

代码语言:javascript
运行
复制
#!/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容器,我使用了以下命令:

代码语言:javascript
运行
复制
#!/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

  • Is一起运行--是否可以访问上述备份文件夹中的项目?数据在那里,但目前我不知道如何导出我的项目。
EN

回答 1

Stack Overflow用户

发布于 2022-09-29 06:51:11

1

是否可以从上述备份文件夹中找到使用过的Gitlab容器版本,以验证它实际上是在gitlab:10.7.3-ce.0版本下运行的?

是的,您可以使用docker logs <container name>显示来自容器的所有日志,并将其输送到head以只显示前10行,这是来自我的容器的输出:

代码语言:javascript
运行
复制
> 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回购没有码头。

首先,解压缩备份文件:

代码语言:javascript
运行
复制
tar zxvf /backup/gitlab.tar.gz

您的所有回购应位于:

代码语言:javascript
运行
复制
var/opt/gitlab/git-data/repositories/<namespace>/<repo>.git

但是这些repos是bare repository,您不能直接使用它们。您需要通过以下命令克隆它:

代码语言:javascript
运行
复制
git clone var/opt/gitlab/git-data/repositories/foo/bar.git foobar

最后,我认为您应该遵循官方文档,使用gitlab-rake gitlab:backup:creategitlab-rake gitlab:backup:restore进行备份和恢复。直接复制文件不是个好主意。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72250932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档