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

时间:2018-04-11 11:46:51

标签: git gitlab symlink githooks cifs

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

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

然而,似乎Gitlab在很大程度上依赖于回购中钩子的存在。否则相当多的事情会破裂。默认情况下,gitlab将始终尝试为repo中的hooks文件夹创建符号链接。您可以通过首先在本地创建项目,然后将现有项目移动/迁移到此cifs安装来解决此问题。然后我实际上放置了钩子文件而不是符号链接。

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

对于类似的东西,请参阅: https://gitlab.com/gitlab-org/gitlab-ce/issues/13734

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

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

1 个答案:

答案 0 :(得分:0)

尝试使用这些选项在CIF上建立符号链接:

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