首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GITLAB:将存储库从旧的gitlab移植到基于码头的gitlab

GITLAB:将存储库从旧的gitlab移植到基于码头的gitlab
EN

Server Fault用户
提问于 2019-12-13 19:42:29
回答 1查看 348关注 0票数 0

我在RaspberryPi上做了几年的Gitlab。现在,我想将存储库移到基于码头的Gitlab中。所有设置都是最好的。

我已经阅读了使用说明,并尝试了以下有关数据的内容:

  1. 我复制了以下内容:
    • /etc/gitlab
    • /var/opt/ gitlab /git-数据和gitlab容器崩溃.

  2. 我复制了以下内容:
    • /etc/gitlab
    • /var/opt/gitlab和gitlab容器崩溃..。

  3. 我复制了以下内容:
    • /etc/gitlab和gitlab容器运行..。尽管gitlab的设置位于/etc/gitlab中,但没有传输任何用户或组数据。出现了“非常第一个”的屏幕,您应该设置根密码等等。此外,我注意到新的Gitlab将存储库存储在/var/opt/gitlab/git-data/repositories/@hashed/下,而不是像以前那样以/var/opt/gitlab/git-data/repositories/group-or-user-name/reponame.(wiki.)git格式存储。

所以我的问题是:

  1. 要复制到端口用户和组设置的内容是什么?
  2. 如何移植存储库?
  3. 我需要复制/备份什么才能在将来恢复GITLAB?

编辑(A) -只对容器进行

实验

代码语言:javascript
复制
docker run \
    --detach \
    --rm \
    --name gitlab \
    --network host \
    --volume ${PWD}/etc/gitlab:/etc/gitlab \
    --volume ${PWD}/var/opt/gitlab:/var/opt/gitlab \
    gitlab/gitlab-ce:latest

如果我用这个命令创建一个容器,使用GITLAB做一些事情,而不是删除容器并启动一个新的容器:这是可行的。在这种情况下,GITLAB的版本是相同的fpr,两个容器。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-12-19 15:15:57

遵循c4f4t0r的提示,我解决了这个问题如下:

  1. 在RaspberryPi上运行旧的GitLabv9.2.7并创建一个备份(备份)。请注意,除了备份本身之外,目录/etc/gitlab还必须单独备份。
  2. 由于备份只能在完全相同的版本和类型(CE/EE)的GitLab (备份和恢复GitLab)中恢复,所以我创建了一个Gitlab容器gitlab/glitlab-ce:9.2.7-ce.0并在其中还原了备份。
    1. 我在docker主机上选择了以下文件夹结构:

/mnt/gitlab_ws/├──备份/ <--包含gitlab.rb;gitlab-sections.json和ssh stuf├──git-data/ <-最初为空└──var/opt/gitlab/ <--最初为空

代码语言:javascript
复制
1. I have chosen the following folder structure within the docker container:

/├──etc/gitlab/├──mnt/gitlab_ws/backup/<-将设置在*/etc/gitlab/gitlab.rb*├──mnt/gitlab_ws/git-data/ <-中设置为*/etc/gitlab/gitlab.rb*└──var/├──/gitlab/

代码语言:javascript
复制
1. running gitlab

./run_gitlab.sh 9.2.7

代码语言:javascript
复制
1. Ensure the correct write permissions. If you set the permissions on host side, the permissions within the container might be not the same. You may want to set the correct access rights after starting the container:

docker exec -it gitlab chown -R git:git /var/opt/gitlab / etc/gitlab /mnt/gitlab_ws/git--R/mnt/gitlab/-R备份

代码语言:javascript
复制
1. Restore the backup

./restore_backup.sh .

代码语言:javascript
复制
1. Check if the Gitlab is now running correctly, showing all repositories and users (If not, the problem might be related to the access rights of _/etc/gitlab_) and the repositories have the expected content (If not, the problem might be related to the _git-data_ path setting in _/etc/gitlab/gitlab.rb_ or the access rights.).
  1. 我将卷/var/opt/ Gitlab /绑定到我的主机,以便通过运行具有更高版本的gitlab容器来升级gitlab。请记住,只有在次要版本(更新)之间才有可能进行升级。
代码语言:javascript
复制
./run_gitlab.sh 9.3.0

启动更高的gitlab之后(容器状态变为“健康”--这可能需要一些时间),您现在应该重新配置gitlab:

代码语言:javascript
复制
./reconfigure_gitlab.sh

从现在起,您可以重复最后的步骤,直到您达到您想要的版本。您也可以自动化这一点;)

run_gitlab.sh

代码语言:javascript
复制
#/bin/bash

GITLAB_WS_PATH='/mnt/gitlab_ws'

if [ $# -eq 0 ]
then
        TAG='latest'
else
        TAG=$1-ce.0
fi

docker run \
        --name gitlab \
        --detach \
        --restart always \
        --network host \
        --volume $GITLAB_WS_PATH/git-data/:/mnt/gitlab_ws/git-data \
        --volume $GITLAB_WS_PATH/var/opt/gitlab:/var/opt/gitlab \
        --volume $GITLAB_WS_PATH/etc/gitlab:/etc/gitlab \
        --volume $GITLAB_WS_PATH/backups:/mnt/gitlab_ws/backups \
        gitlab/gitlab-ce:${TAG}

restore_backup.sh

代码语言:javascript
复制
#!/bin/bash

DE="docker exec -it gitlab"

${DE} gitlab-ctl stop unicorn
${DE} gitlab-ctl stop sidekiq
${DE} gitlab-rake gitlab:backup:restore
${DE} gitlab-ctl reconfigure
${DE} gitlab-ctl restart

reconfigure_gitlab.sh

代码语言:javascript
复制
#!/bin/bash

DE="docker exec -it gitlab"

${DE} gitlab-ctl stop
${DE} gitlab-ctl reconfigure
${DE} gitlab-ctl start
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/995506

复制
相关文章

相似问题

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