change the data directory gitlab to store repos elsewhere

前端 未结 6 2003
南笙
南笙 2020-12-04 06:13

my basic disk is full for my gitlab installation, is it possible to move the repositories and their data to some other folder and make sure that the upcoming push\'s data is

相关标签:
6条回答
  • 2020-12-04 06:51

    Just updating in case people still refer to this. From the GitLab documentation:

    By default, omnibus-gitlab stores the Git repository data under /var/opt/gitlab/git-data. The repositories are stored in a subfolder repositories. You can change the location of the git-data parent directory by adding the following line to /etc/gitlab/gitlab.rb.

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

    Starting from GitLab 8.10 you can also add more than one git data directory by adding the following lines to /etc/gitlab/gitlab.rb instead.

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

    Note that the target directories and any of its subpaths must not be a symlink.

    Run sudo gitlab-ctl reconfigure for the changes to take effect.

    If you already have existing Git repositories in /var/opt/gitlab/git-data you can move them to the new location as follows:

    # 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
    
    0 讨论(0)
  • 2020-12-04 06:54

    If you're getting the cannot find repo error in GitLab after running the above steps. Run this command.

    gitlab-rake cache:clear RAILS_ENV=production
    

    This should fix the issue if your pathing is correct.

    0 讨论(0)
  • 2020-12-04 06:56

    Much easier solution for new installs with the version > 7.14.1:

    Open the gitlab.rb configuration file

    sudo nano /etc/gitlab/gitlab.rb
    

    Search for git_data_dir, uncomment the line and set your directory here, e.g.

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

    Save the file and reconfigure Gitlab:

    sudo gitlab-ctl reconfigure
    
    0 讨论(0)
  • 2020-12-04 06:56

    you need append this small config bellow:

    git_data_dirs({
        "default" => {
            "path" => "/srv/gitlab/git-data"
        }
    })
    

    And

    rsync -av /var/opt/gitlab/git-data/* /srv/gitlab/git-data/.
    chown -R git:git /srv/gitlab/git-data/
    sudo gitlab-ctl reconfigure
    

    Done.

    0 讨论(0)
  • 2020-12-04 07:04

    In my case, I needed to move a repository from the default storage to storage1
    If you load the project's general setting, it show the project number, for example 37:

    sudo gitlab-rails console
    irb(main):012:0> p37 = Project.find(37)
    irb(main):009:0> p37.repository_storage
    => "default"
    irb(main):010:0> p37.repository_storage = 'storage1'
    irb(main):011:0> p37.save
    => true
    irb(main):012:0>  # <ctrl>+d to send EOF and exit
    

    clearing the cache is probably a good idea too

    gitlab-rake cache:clear RAILS_ENV=production

    0 讨论(0)
  • 2020-12-04 07:08

    I just moved my gitlab repositories folder from one directory to another, might be useful for someone (do this quickly at a quiet time or stop gitlab beforehand!)

    Assuming you have a standard install the steps are

    • Create a new folder for repos as root and change the owner to the git user
    • Copy (with archive, recursive options) the old repo folder contents to its new home cp -ar SOURCE DESTINATION
    • Edit the gitlab config file and the gitlab-shell config files with the new repo path
    • Restart gitlab sudo /etc/init.d/gitlab restart
    0 讨论(0)
提交回复
热议问题