開発者がgitolite/gitを介してリポジトリをリモートリポジトリ/ウェブサーバーにプッシュできる開発/テストサーバーをセットアップしました。リポジトリサイトではすべてがうまく機能しますが、開発者はサーバーを使用できます。
問題:
コードをapachedocumentroot(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
しかし、これもうまくいかないようです。可能であれば、別のシェルスクリプトを呼び出さないようにします。
どんなアイデアでも本当にありがたいです。