git деплой

git деплой — процесс выкатки приложения из репозитория на production сервер. Проще всего автоматизации процесс добиться через git hooks. Хотя для больших систем используются специализирвоанные решения.

 

git деплой, развертывание приложения из git

Репозиторий на production сервере будет размещаться в отдельном каталоге, его нужно создать.

mkdir -p repo/site.git

cd repo/site.git/

 

Инициализируем директорию, при этом не создавая исходники.

git init —bare

Initialized empty Git repository in /home/web/repo/site.git/

 

 

mcedit hooks/post-receive

#!/bin/sh
GIT_WORK_TREE=/var/www/site.com git checkout -f

 

Здесь путь к каталогу с файлами сайта, от пути к репозиторию он будет отличаться.

 

Добавляем бит исполнения

chmod +x hooks/post-receive

hook будет выполнятсья после отправки данных в удаленный репозиторий (git push). Вызывается после всех обновлений.

 

На production сервере настройки завершены.

Теперь локальный репозиторий.

Задаем подключение к серверу

git remote add production ssh://root@123.123.123.123/home/web/repo/site.git/

Скорректировать на практике нужно имя пользователя, IP адрес сервера и путь к репозиторию.

 

Теперь из любой ветки репозитория можно заливать изменения на production выполняя push

git push production fix

 

В примере приведена ветка fix, это может быть master или любая другая.

 

За счет хуков достигается простейшая автоматизация. Вручную того же результата можно добиваться выполняя git push из локального репозитория в удаленный и  git pull из удаленного на сервер.

При работе с git удобно пользоваться алиасами.

 

Большие приложения разворачиваются при помощи CI-CD систем таких как jenkins и Gitlab.