Развертывание с помощью git - PullRequest
3 голосов
/ 16 мая 2011

В настоящее время у меня есть куча git-репозиториев для сайта django, которые я хочу развернуть, репозитории принимают форму:

sn-static
sn-django
sn-templates
[etc]

У меня есть репозиторий super , в котором каждое из них хранится в виде подмодулей. С точки зрения развертывания, я хочу попытаться сделать все довольно просто, будет ли это правильный метод:

  • Клонируйте стабильный тег из супер-репо и, следовательно, храните стабильные клоны каждого репо в одном месте.
  • Поскольку имена sn- *, я бы посмотрел символическую ссылку на более дружественную структуру, например. ln -s /path/to/super-repos/sn-static /home/site/media/
  • Тогда мой веб-сервер nginx (по крайней мере, в случае статического контента) может просто ссылаться на / home / site / media

Без большого количества технических знаний я не уверен, будут ли символические ссылки иметь какие-либо последствия с точки зрения скорости или стабильности. Мне также интересно, смогу ли я с этим справиться как методом развертывания, а не, скажем, использовать что-то вроде Capistrano (с которым у меня пока нет опыта).

Ответы [ 2 ]

2 голосов
/ 16 мая 2011

Опция, которую вы должны рассмотреть, - это использование pip в сочетании с virtualenv для установки ваших пакетов, особенно если pip имеет возможность напрямую устанавливать определенные ветви илитеги из репозитория git.Таким образом, вы можете использовать один файл требований для обработки всех ваших зависимостей, ваших собственных пакетов и приложений другими людьми.(См. в этом посте для получения полной картины.)

И для обработки ваших статических носителей я предпочел бы использовать встроенное приложение staticfiles Django вместо символической ссылки на несколько каталогов,как кажется чище и проще в управлении.

0 голосов
/ 16 мая 2011

Когда вы достигнете точки релиза в своем коде, отметьте ее ( Git Tag ). На вашем сервере клонируйте основную ветку один раз, а затем просто извлекайте нужный тег выпуска каждый раз, когда вы делаете релиз.

git pull [tag]
...