Git « post-update в локальную папку
Репозиторий Git и тестовый сайт находится на одном хосте. Хочется сделать так: чтобы при пуше в репозиторий, автоматически пулился тестовый сайт. Репозиторий Gitа на gitosis
Использую post-update hook:
#!/bin/sh
PATH=/bin:/usr/bin:/usr/lib:/usr/local/bin
PROJECT_NAME='myproj'
PROJECT_DIR=/var/www-myproj/
PROJECT_ENV='testing'
echo "start $PROJECT_NAME $PROJECT_ENV pulling:$GIT_WORK_TREE"
cd $PROJECT_DIR
git pull origin $PROJECT_ENV
если зайти (под рутом) по SSH и запустить post-update то все работает, пулится. Но если со своей домашней машины делаю пуш в репозиторий, то пишет
remote: start myproj testing pulling: remote: fatal: Not a git repository: '.'
не могу понять как так настроить права ли пользователей (и в правах вообще дело)
у папки /var/www-myproj владелец nginx:nginx
post-update выполняется от пользователя gitosis (я так подозреваю)
добавил пользователя gitosis в группу nginx - все равно не работает :/
[root@serv1 hooks]#id gitosis
uid=102(gitosis) gid=103(gitosis) группы=103(gitosis),101(nginx)
Использую post-update hook:
#!/bin/sh
PATH=/bin:/usr/bin:/usr/lib:/usr/local/bin
PROJECT_NAME='myproj'
PROJECT_DIR=/var/www-myproj/
PROJECT_ENV='testing'
echo "start $PROJECT_NAME $PROJECT_ENV pulling:$GIT_WORK_TREE"
cd $PROJECT_DIR
git pull origin $PROJECT_ENV
если зайти (под рутом) по SSH и запустить post-update то все работает, пулится. Но если со своей домашней машины делаю пуш в репозиторий, то пишет
remote: start myproj testing pulling: remote: fatal: Not a git repository: '.'
не могу понять как так настроить права ли пользователей (и в правах вообще дело)
у папки /var/www-myproj владелец nginx:nginx
post-update выполняется от пользователя gitosis (я так подозреваю)
добавил пользователя gitosis в группу nginx - все равно не работает :/
[root@serv1 hooks]#id gitosis
uid=102(gitosis) gid=103(gitosis) группы=103(gitosis),101(nginx)
1 ответов
Вот отличная статья на эту тему. В ней есть рабочий post-update и, к тому же, рассмотрена весьма эффективная схема публикации сайта. http://habrahabr.ru/blogs/Git/127213/
Все из-за переменной окружения GIT_DIR
#!/bin/sh
PATH=/bin:/usr/bin:/usr/lib:/usr/local/bin
PROJECT_NAME='myproj'
PROJECT_DIR=/var/www-myproj/
PROJECT_ENV='testing'
echo "start $PROJECT_NAME $PROJECT_ENV pulling:$GIT_WORK_TREE"
cd $PROJECT_DIR
unset GIT_DIR
git pull origin $PROJECT_ENV
PATH=/bin:/usr/bin:/usr/lib:/usr/local/bin
PROJECT_NAME='myproj'
PROJECT_DIR=/var/www-myproj/
PROJECT_ENV='testing'
echo "start $PROJECT_NAME $PROJECT_ENV pulling:$GIT_WORK_TREE"
cd $PROJECT_DIR
unset GIT_DIR
git pull origin $PROJECT_ENV