我正在尝试为使用 Gitolite 的 Node 应用程序提供一个相当简单的部署过程。我有 Gitolite 设置并在我的服务器上工作,我能够很好地推动它。
Gitolite 在名为 的用户下运行git
,我已经设置了一个node
希望用来运行 Node 应用程序的用户。
我的计划是将 Node 应用程序推送到 Gitolite,然后使用 post-receive 挂钩脚本将应用程序文件移动到应用程序所在的目录,在本例中为/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 菜鸟,我没有得到我的头文件/文件夹权限和 wotnot。
/var/local/node-apps
(and also /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
谢谢!