Gitoliteを使用してNodeアプリの非常に単純なデプロイプロセスを実行しようとしています。私はGitoliteをセットアップしてサーバーで作業していますが、問題なくプッシュできます。
Gitoliteは、というユーザーの下で実行されており、Nodeアプリの実行に使用したいユーザーをgit
設定しました。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
ますか?または、グループとフォルダーのアクセス許可を変更することで、これを何らかの方法で修正できますか?または完全に別のアプローチ?道に迷いました!
ありがとう!