2012-05-03 1 views
3

Мы используем dotCloud, виртуальный хост, чтобы запускать некоторые из наших приложений. dotCloud развертывает приложения непосредственно из git-репо и считывает файл конфигурации с именем dotcloud.yml из этого репо для настройки и запуска стека.Различные версии одного и того же конфигурационного файла в разных ветвях

У нас есть две ветви (одна постановка, одна постановка), которые являются частью одного и того же репо, и они нажимают на отдельные экземпляры dotCloud. Существует незначительная разница в файле dotcloud.yml для запуска каждого из этих экземпляров.

Каков наилучший способ управления этим файлом dotcloud.yml? В настоящее время мы просто убеждаемся, что мы стараемся, чтобы dotcloud.yml был правильным для каждой ветви, но он постоянно перезаписывается, когда мы объединяем изменения с этапа на мастер.

+0

Можете ли вы описать эту «незначительную разницу» в 'dotcloud.yml' между вашей производственной и промежуточной ветвями? – jpetazzo

+0

Я угадываю переменные среды и такие. – nilskp

ответ

1

Вы могли:

  • версия версия dotcloud.yml.template
  • dotcloud.yml.value.prod и dotcloud.yml.value.staging с соответствующими значениями для каждой среды.
  • версия сценария smudge, отвечающего за построение права dotcloud.ym l файл (который больше не будет версироваться) в зависимости от экземпляра dotCloud.

Вы бы заявить, что размазать сценарий как filter content driver в а (также версионируются) .gitattribute file:

filter driver

На любой мерзавца проверки, сценарий размазать будет называться и, если она признала dotcloud.yml.template контента, создаст правильный файл dotcloud.yml.

0

Вы могли:

  • добавить dotcloud.yml в .gitignore, есть два отдельных файла для постановки и производства (например dotcloud.yml.staging и dotcloud.yml.production), оба присутствуют в репозитории Git, настройки символьную ссылку dotcloud.yml → dotcloud.yml.production и отталкиваться dotcloud push --rsync (флаг --rsync будет переопределять обнаружение механизма push, а механизм rsync будет использоваться вместо механизма git);
  • использовать тот же файл dotcloud.yml, но полагаться на другой механизм (например, dotcloud var или сценарий postinstall) для переключения между производственным и промежуточным поведением.
+0

Обратите внимание, что новый инструмент (0.9) dotcloud cli не имеет флага '--all' для' dotcloud push', поэтому этот ответ не будет работать. –

+0

Вы правы; он был изменен на -rsync. Я обновил свой ответ. Спасибо! – jpetazzo