Eu tenho projetos hospedados com gitolite em meu próprio servidor, e gostaria de implantar o projeto inteiro do repositório bare de gitolite para o local acessível do apache, pelo gancho post-receive.
Eu tenho o próximo conteúdo de gancho
echo "starting deploy..."
WWW_ROOT="/var/www_virt.hosting/domain_name/htdocs/"
GIT_WORK_TREE=$WWW_ROOT git checkout -f
exec chmod -R 750 $WWW_ROOT
exec chown -R www-data:www-data $WWW_ROOT
echo "finished"
o gancho não pode ser concluído sem nenhuma mensagem de erro.
chmod: changing permissions of '/var/www_virt.hosting/domain_name/file_name': Operation not permitted
significa que o git não tem o direito de fazê-lo.
O caminho de origem do git é /var/lib/gitolite/project.git/
, que pertence a gitolite:gitolite
E com essas permissões, o redmine (que está trabalhando com o usuário do www-data) não pode alcançar o repositório git para buscar todas as alterações
O projeto inteiro deve ser colocado aqui: /var/www_virt.hosting/domain_name/htdocs/
, que pertence a www-data:www-data
.
Quais mudanças eu devo fazer para trabalhar apropriadamente no gancho pós-recebimento no git e redimir com o repositório?
o que eu fiz é:
# id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data),119(gitolite)
# id gitolite
uid=110(gitolite) gid=119(gitolite) groups=119(gitolite),33(www-data)
não ajudou.
Eu não quero ter nenhum problema para trabalhar com o apache (para visualizar o projeto), redimir para ler arquivos de origem para o projeto (sob git) e git (fazendo deploy para o caminho acessível de www-data)
o que devo fazer?