更改数据目录gitlab以将repos存储在其他位置

Bri*_*SFT 57 git gitlab

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

我试着停止gitlab并复制整个文件夹,但无济于事.PS - 我不是一个IT人员,我只是在投资,看看我们怎么能摆脱这个问题; 请回答时请详细说明.

Gus*_*s E 119

只是更新以防人们仍然参考这个.从GitLab 文档:

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

git_data_dirs({"default" => "/mnt/nas/git-data"})
Run Code Online (Sandbox Code Playgroud)

从GitLab 8.10开始,您还可以通过添加以下行来添加多个git数据目录/etc/gitlab/gitlab.rb .

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

请注意,目标目录及其任何子路径都不能是符号链接.

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

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

# 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
Run Code Online (Sandbox Code Playgroud)

  • 另见 https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#storing-git-data-in-an-alternative-directory (2认同)
  • 是不是需要启动Postgres for gitlab-ctl重新配置才能工作? (2认同)
  • `sudo gitlab-ctl reconfigure` 命令非常重要,因为不这样做会在 GitLab 中导航时产生一些 502 错误,甚至更糟。 (2认同)

Kov*_*vah 10

对于版本> 7.14.1的新安装,更简单的解决方案:

打开gitlab.rb配置文件

sudo nano /etc/gitlab/gitlab.rb
Run Code Online (Sandbox Code Playgroud)

搜索git_data_dir,取消注释该行并在此处设置您的目录,例如

git_data_dir "/storage/data/gitlab/git-data"
Run Code Online (Sandbox Code Playgroud)

保存文件并重新配置Gitlab:

sudo gitlab-ctl reconfigure
Run Code Online (Sandbox Code Playgroud)


小智 6

您需要在下面附加这个小配置:

git_data_dirs({
    "default" => {
        "path" => "/srv/gitlab/git-data"
    }
})
Run Code Online (Sandbox Code Playgroud)

rsync -av /var/opt/gitlab/git-data/* /srv/gitlab/git-data/.
chown -R git:git /srv/gitlab/git-data/
sudo gitlab-ctl reconfigure
Run Code Online (Sandbox Code Playgroud)

完毕。


ala*_*ree 5

我只是将我的gitlab存储库文件夹从一个目录移到了另一个目录,这可能对某人有用(在安静的时间快速执行此操作,或者事先停止gitlab!)

假设您已进行标准安装,则步骤为

  • 为root创建一个新的存储库文件夹,并将所有者更改为git用户
  • 将旧的repo文件夹内容复制(带有存档,递归选项)到新目录 cp -ar SOURCE DESTINATION
  • 使用新的回购路径编辑gitlab配置文件 gitlab-shell配置文件
  • 重新启动gitlab sudo /etc/init.d/gitlab restart