Gitlab с репозиториями на монтировании cifs не может создать новый проект

У нас есть сервер gitlab, работающий в нашей внутренней сети, который настроен для хранения репозиториев на монтировании cifs (требование проекта). Более того, этот диск nas должен быть доступен из внешней сети и также должен разрешать операции git с репозиториями из этой другой сети, тем самым даже не признавая существование сервера gitlab. Это приводит к нескольким проблемам, которые я пытался решить.

Одна из проблем заключалась в том, что gitlab выполняет явные проверки разрешений (770 для одной папки, 2770 для другой и т.д.) для некоторых папок, что невозможно при монтировании cifs. Я исправил это, отключив эту проверку (manage_storage_directories ['enable'] = false) в /etc/gitlab/gitlab.rb

Однако похоже, что Gitlab сильно зависит от наличия хуков в репо. В противном случае ломается довольно много вещей. И по умолчанию gitlab всегда будет пытаться создать символическую ссылку для папки хуков в репо. Вы можете обойти это, сначала создав проект локально, а затем переместив / перенеся существующий проект на это монтирование cifs. Затем я фактически помещаю файлы ловушек вместо символической ссылки.

Я не хочу делать этот ХАК для каждого нового проекта. Если я попробую иначе, я всегда получаю сообщение об ошибке «Форма содержит следующую ошибку: Не удалось создать репозиторий через gitlab-shell» в веб-интерфейсе.

Для чего-то похожего см.: https://gitlab.com/gitlab-org/gitlab-ce/issues/13734

На данный момент я бы предпочел не трогать сервер smb на nas, чтобы включить некоторые флаги для разрешения символических ссылок (если это вообще возможно).

Не стесняйтесь спрашивать дополнительную информацию. Заранее спасибо!

0
0
621
1

Ответы 1

Попробуйте эти варианты символьных ссылок на 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

Другие вопросы по теме