更改数据目录gitlab在其他地方存储回购

我的基本磁盘已满为我的gitlab安装,是否有可能将存储库和他们的数据移动到其他文件夹,并确保即将到来的推送的数据发送到这些目录?

我试图停止gitlab并复制整个文件夹,但无济于事。 PS – 我不是一个IT人,我只是想看看我们怎么能摆脱这个问题; 所以在回答时请详细。

只是更新,以防人们仍然参考这一点。 从GitLab 文档 :

默认情况下,omnibus-gitlab将Git存储库数据存储在/var/opt/gitlab/git-data 。 存储库存储在子文件夹repositories 。 您可以通过/etc/gitlab/gitlab.rb添加到/etc/gitlab/gitlab.rb来更改git-data父目录的位置。

 git_data_dirs({"default" => "/mnt/nas/git-data"}) 

从GitLab 8.10开始,你也可以添加下面几行到/etc/gitlab/gitlab.rb来添加多个git数据目录。

 git_data_dirs({ "default" => "/var/opt/gitlab/git-data", "alternative" => "/mnt/nas/git-data" }) 

请注意,目标目录及其任何子path不能是符号链接。

运行sudo gitlab-ctl reconfigure使更改生效。

如果在/var/opt/gitlab/git-data已经有了Git存储库,则可以将它们移动到新的位置,如下所示:

 # Prevent users from writing to the repositories while you move them. sudo gitlab-ctl stop # Note there is _no_ slash behind 'repositories', but there _is_ a # slash behind 'git-data'. sudo rsync -av /var/opt/gitlab/git-data/repositories /mnt/nas/git-data/ # Fix permissions if necessary sudo gitlab-ctl reconfigure # Double-check directory layout in /mnt/nas/git-data. Expected output: # gitlab-satellites repositories sudo ls /mnt/nas/git-data/ # Done! Start GitLab and verify that you can browse through the repositories in # the web interface. sudo gitlab-ctl start 

对于版本> 7.14.1的新安装,更容易的解决scheme:

打开gitlab.rbconfiguration文件

 sudo nano /etc/gitlab/gitlab.rb 

searchgit_data_dir ,取消注释行并在这里设置你的目录,例如

 git_data_dir "/storage/data/gitlab/git-data" 

保存文件并重新configurationGitlab:

 sudo gitlab-ctl reconfigure 

我只是把我的gitlab repositories文件夹从一个目录移动到另一个目录,可能对某个人有用(在安静的时候快速完成这个任务,或者事先停止gitlab!)

假设你有一个标准的安装步骤

  • 以root用户身份创build一个新的文件夹,并将所有者改为git用户
  • 将旧的回购文件夹内容复制(使用归档,recursion选项)到其新的主目录cp -ar SOURCE DESTINATION
  • 使用新的回购path编辑gitlabconfiguration文件 gitlab-shellconfiguration文件
  • 重启gitlab sudo /etc/init.d/gitlab restart

如果在运行上述步骤之后在gitlab中发现“无法find回购”错误。 运行这个命令。

gitlab-rakecaching:清除RAILS_ENV =生产

这应该解决这个问题,如果你的path是正确的。