Я пытаюсь получить довольно простой процесс развертывания для приложения Node с использованием Gitolite. У меня есть установленный Gitolite, работающий на моем сервере, и я могу нормально нажимать на него.
Gitolite работает под пользователем git
, и я настроил пользователя node
, которого надеюсь использовать для запуска приложения Node.
Мой план состоит в том, чтобы отправить приложение Node в Gitolite, а затем использовать скрипт ловушки после получения, чтобы переместить файлы приложения в каталог, где находится приложение, в данном случае /var/local/node-apps/my-node-app/
. Я создал папку приложения Node следующим образом:
sudo mkdir -p /var/local/node-apps/my-node-app
sudo chown node /var/local/node-apps/my-node-app
Проблема в том, что я новичок в Unix, и у меня нет прав на файлы / папки, и я не знаю.
/var/local/node-apps
(а также /var/local/node-apps/my-node-app
) принадлежит пользователю node
, поэтому, когда пользователь git
пытается оформить заказ в этом месте, я получаю кучу ошибок отказа в доступе. Команда, которую я использую в пост-получении:
GIT_WORK_TREE=/var/local/node-apps/my-node-app git checkout -f
И я получаю такие ошибки:
remote: error: git checkout-index: unable to create file XXXX (Permission denied)
remote: fatal: cannot create directory at 'XXXX': Permission denied
Каков наилучший способ решить эту проблему? Нужно ли предоставлять пользователю git
права sudo без пароля для su
в качестве пользователя node
? Или это можно как-то исправить изменением прав групп и папок? Или совсем другой подход? Я потерялся!
Спасибо!