Использование Git ниже веб-корня в производстве - PullRequest
3 голосов
/ 30 июня 2010

Я заядлый пользователь git;Я использую git в разработке;в постановке, но не в производстве.

Существуют ли веские причины не использовать git под корневым веб-каталогом (/ var / www /) в производственной среде?Я думал о том, чтобы использовать основную ветвь в качестве производственной или создать производственную.

Пуш-продакшн звучит так мило ...

Ответы [ 3 ]

4 голосов
/ 30 июня 2010

так хорошо ... и все же как-то не так.

В производственной среде вам нужно заботиться о:

  • безопасности доступа (как вы копируете / развертываетепоставка)
  • остановка правильного процесса вашего приложения
  • развертывание новой версии
  • запуск правильных процессов (в правильном порядке)
  • мониторинг
  • отчетность

Контроль версий не является частью этой картины: любой дополнительный инструмент, который вы можете захотеть установить в производственной среде, является дополнительной потенциальной точкой отказа (и требует отдельного администрирования и мониторинга).).
Если у него нет прямой связи с развертываемым приложением («прямая ссылка», как «ваше приложение не будет работать без этого дополнительного инструмента»), оно не должно быть на рабочей платформе.

Создайте git archive из вашей основной ветки в виде красивого архива tar с файлом version.txt для идентификации репозитория / SHA1, из которого был сделан этот архив, и sftp/ srsynch это к производству platform.
Оттуда больше Git не требуется.

2 голосов
/ 30 июня 2010

Если вы хотите использовать git в рабочей среде, вам нужно убедиться, что .git не доступен через веб-сервер.Это можно сделать, разместив .git вне корневого веб-каталога и установив переменную среды GIT_DIR, или настроив соответствующий веб-сервер.

Одной из возможностей под apache будет следующее правило перезаписи:

RewriteRule ^(.*/)?\.git/ - [F,L]
2 голосов
/ 30 июня 2010

Помимо очевидной эстетической причины, разрешения часто могут быть проблемой, если у вас есть репозиторий в /var/www.

На моем рабочем сервере у меня есть пустой репозиторий в частном каталоге на ветви production и отдельное рабочее дерево в / var / www (см. Настройку core.worktree).Кроме того, для запуска git checkout -f у меня есть обработчик пост-получения, поэтому все, что мне нужно сделать с локального компьютера, - это нажать на ветку production, а обо всем остальном позаботится автоматически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...