在 cifs 挂载上具有存储库的 Gitlab 无法创建新项目



我们有一个在内部网络上运行的 gitlab 服务器,该服务器配置为将存储库存储在 cifs 挂载上(项目要求)。此外,此 nas 驱动器必须可从外部网络访问,并且还应该允许对来自此其他网络的存储库执行 git 操作,因此甚至不承认 gitlab 服务器的存在。这导致了我一直试图解决的几个问题。

一个问题是 gitlab 对某些文件夹进行显式权限检查(某些文件夹为 770,另一个文件夹为 2770 等),这在 cifs 挂载上是不可能的。我通过在/etc/gitlab/gitlab.rb 中禁用此检查(manage_storage_directories['enable'] = false) 来修复它

但是,Gitlab 似乎严重依赖于存储库中钩子的存在。否则很多东西都会破裂。默认情况下,gitlab 将始终尝试为存储库中的钩子文件夹创建符号链接。您可以通过首先在本地创建一个项目,然后将现有项目移动/迁移到此 cifs 挂载来解决此问题。然后我实际上放置了钩子文件而不是符号链接。

我不想为每个新项目做这个HACK。如果我尝试其他方法,我总是在 Web 界面上收到错误"表单包含以下错误:无法通过 gitlab-shell 创建存储库"。

有关类似内容,请参阅: https://gitlab.com/gitlab-org/gitlab-ce/issues/13734

目前,我宁愿不触摸 nas 上的 smb 服务器以启用一些允许符号链接的标志(如果可能的话)。

请随时询问更多信息。 提前感谢!

在 cifs 上尝试这些符号链接选项:

sudo mount -t cifs -o 
user=user,pass=pass,vers=3.0,uid=987,gid=0,soft,rsize=8192,wsize=8192,mfsymlinks 
//1.2.3.4/git /var/opt/gitlab/git-data/repositories

问候,CK

最新更新