Deploy com GIT
Fazer deploy de aplicações faz parte da rotina de todo desenvolvedor; e dependendo da sua aplicação, pode ser algo que vc queira automatizar. Para isso uma dica que aprendi essa semana é usar o GIT para submeter seu código no servidor; não apenas como um repositório, mas para automatizar os comandos necessários para fazer sua aplicaçao funcionar em ambiente de homologação/produção.
Criando o repositório no servidor
Acesse o servidor que vai receber o deploy usando SSH.
ssh usuario@sevidor.com.br
Lembre-se de trocar “usuario” e “servidor” por suas credenciais e servidor respectivamente.
Crie o diretório que vai receber os arquivos do deploy.
[usario@servidor]$ mkdir /diretorio/do/deploy
Acesse o diretório criado e inicie um repositório com a opção --bare
[usario@servidor]$ cd /diretorio/do/deploy
[usario@servidor]$ git init --bare .
Nas Referências vc vai encontrar uma explicação mais detalhada, mas em resumo um diretório “bare
” é um diretório que apenas recebe os arquivos (ou pushable), i.e. vc não consegue fazer um git add
ou um git commit
a partir desse diretório. No nosso caso, tal diretório foi criado com --bare
porque ele vai apenas receber os arquivos do deploy, não vamos modificar código a partir dele.
Usando o git hooks/post-receive
Depois disso vamos usar git hooks
para automatizar o processo de de deploy quando nosso diretório receber um push. Para isso acesse o arquvio post-receive
dentro do diretório hooks
.
[usario@servidor]$ vim /diretorio/do/deploy/hooks/post-receive
Você pode usar o editor de texto que preferir ;-)
Como conteúdo do arquivo digite os seguinte comandos:
#!/bin/sh
GIT_WORK_TREE=/diretorio/do/deploy git checkout -f
Salve o arquivo e depois conceda permissões de execução.
[usario@servidor]$ chmod 777 /diretorio/do/deploy/hooks/post-receive
O que fizemos foi editar um arquivo que será executado a cada push recebido no diretório. Vc pode inserir outros comandos que sejam usados para deploy; por exemplo cópia de arquivos estáticos, atualização de arquivos do servidor web/aplicação, etc.
Adicionando o repositório deploy
Agora vamos configurar o repositório no nosso projeto que vai receber os pushes para deploy:
git remote add deploy usuario@servidor.com.br:/diretorio/do/deploy
Feito isso, sempre que quiser fazer o deploy basta executar o seguinte comando:
git push deploy master
Será solicitado a sua senha de acesso SSH ao servidor de deploy. No servidor os arquivos serão submetidos e o código no post-receive será executado. Seu deploy estará completo.
Obrigado ao Wesley pelo post no qual aprendi essa facilidade.
Referências
Post em que aprendi o deploy com GIT – Wesley Serafim de Araújo
GIT hooks – ações realizadas pelo GIT ao receber um push
Repositório –bare no GIT – o que é um repositório criado com a opção “–bare”
Diferença entre bare
e init
– explicação no Stackoverflow sobre a diferença entre repósitórios criados com git init
e git init --bare
Deixe um comentário