我已经设置了一个开发/测试服务器,开发人员可以在其中通过 gitolite/git 将存储库推送到远程 repo/webserver。在存储库站点上一切正常,但是开发人员可以使用服务器:
问题:
我想将代码部署到 apache 文档根目录(chown'd apache:apcahe 和 chmod'd 755)。我正在遵循这些说明,并在编辑我的接收后挂钩时,如下所述:
#!/bin/sh
echo "deploying to DocumentRoot"
GIT_WORK_TREE=/var/www/www.example.com git checkout -f
但是现在当我从我的本地仓库运行 git push 时,我得到了权限错误,例如:
error: git checkout-index: unable to create file .gitignore (Permission denied)
error: git checkout-index: unable to create file .htaccess (Permission denied)
而且我的文档根目录是空的...... post-receive 挂钩以用户'gitolite'身份运行(不确定这是否重要)。
gitolite 已经在 sudoers 列表中,所以我想运行类似:
GIT_WORK_TREE=/var/www/www.example.com sudo git checkout -f
但这似乎也不起作用,如果可能的话,我想避免调用单独的 shell 脚本。
任何想法都会非常感激。