У нас есть сервер gitlab, работающий в нашей внутренней сети, который настроен для хранения репозиториев на монтировании cifs (требование проекта). Более того, этот диск nas должен быть доступен из внешней сети и также должен разрешать операции git с репозиториями из этой другой сети, тем самым даже не признавая существование сервера gitlab. Это приводит к нескольким проблемам, которые я пытался решить.
Одна из проблем заключалась в том, что gitlab выполняет явные проверки разрешений (770 для одной папки, 2770 для другой и т.д.) для некоторых папок, что невозможно при монтировании cifs. Я исправил это, отключив эту проверку (manage_storage_directories ['enable'] = false) в /etc/gitlab/gitlab.rb
Однако похоже, что Gitlab сильно полагается на наличие хуков в репо. В противном случае ломается довольно много вещей. И по умолчанию gitlab всегда будет пытаться создать символическую ссылку для папки хуков в репо. Вы можете обойти это, сначала создав проект локально, а затем переместив / перенеся существующий проект на это монтирование cifs. Затем я фактически помещаю файлы ловушек вместо символической ссылки.
Я не хочу делать этот HACK для каждого нового проекта. Если я попробую иначе, я всегда получаю сообщение об ошибке «Форма содержит следующую ошибку: Не удалось создать репозиторий через gitlab-shell» в веб-интерфейсе.
Для чего-то похожего см .: https://gitlab.com/gitlab-org/gitlab-ce/issues/13734
На данный момент я бы предпочел не трогать сервер smb на nas, чтобы включить некоторые флаги для разрешения символических ссылок (если это вообще возможно).
Не стесняйтесь спрашивать дополнительную информацию. Заранее спасибо!