Git remoto para remoto

1

Estou tentando descobrir como posso usar o git para implantar um site.

Existem 3 ligações em teoria:

  1. [máquina local] Minha máquina local para codificação
  2. [servidor gitolite] Hospedagem de recompra privada usando Gitolite
  3. [servidor da web] hospedagem VPS com um clone --bare

Eu git push meu código de [máquina local] para o [servidor gitolite] mas como faço para empurrar meu código de [gitolite] para meu [servidor da web]

Eu gostaria de automatizar isso, então tudo que eu preciso fazer é completar um git push .

A melhor maneira de configurar um gancho no repositório [gitolate server] é executar um script post-update ou post-receive ? Mas como é um --bare repo, isso significa que preciso executar um git push do [servidor gitolite] para o repositório clonado do [servidor da web] desde Não consigo executar um git pull , pois o --bare repo não tem uma árvore em funcionamento?

Desculpe e obrigado antecipadamente

WD

    
por Wasabi Developer 10.02.2012 / 14:19

1 resposta

1

Uma solução é:

  1. coloque um gancho de pós-recebimento no servidor gitolite para enviar automaticamente para o servidor da web
  2. coloque um gancho de pós-recebimento no servidor da web para implantar o código (geralmente uso o git archive para isso)

Então você empurra para o gitolite, ele empurra para o servidor web, que então implanta seu novo código. Feito!

Como alternativa, você poderia tirar o repositório do git no servidor da web da equação e fazer com que o gancho pós-recebimento do gitolite faça algo como:

git archive --format=tar master | (ssh -i $KEYFILE user@webserver tar -x -C /dest/dir )

que fará o deploy diretamente do gancho de gitolite. Isso pressupõe que você pode ssh no servidor web como 'usuário' que tem uma chave ssh privada em $ KEYFILE, que pode ter algumas ramificações de segurança, já que qualquer um que possa ler o gancho gitolite pode ser capaz de prender esses valores.

    
por 10.02.2012 / 16:26