После долгого и трудного месяца, когда я пытаюсь разузнавать разные вещи и укусаться каждый раз, когда понял,
только потому, что Heroku использует репозиторий git как механизм развертывания, вы не должны рассматривать его как репозиторий git
он мог бы быть rsync так же хорошо, они пошли на git, не отвлекайтесь из-за этого
, если вы это сделаете, вы открываете себе все виды травм. Все вышеупомянутые решения где-то удручающе:
bundle deploy
- сбой, вам нужно связывать обновление каждый раз, когда вы пытаетесь добавить движок в качестве :path
+ bundle deploy
- fail, команда dev считает :path
опцией «вы», не используя Bundler с этой опцией gem ", поэтому он также не будет поставляться для производства, при каждом обновлении движка требуется обновить решение rails stack -_- /vendor
в разработке и фактически копировать файлы для производства В рассматриваемом приложении есть 4 проекта в git root:
Все проекты имеют символическую ссылку vendor/common
, смотрящую на корень механизма common
, При компиляции исходного кода для развертывания в heroku нам необходимо удалить symlink и rsync, чтобы его физически находить в папке поставщика каждого отдельного хоста.
Работает очень очень приятно в дикой природе с минимальными (нет?) проблемами 6 месяцев
Вот сценарий https://gist.github.com/bbozo/fafa2bbb8c7b12d923f [/ g 28]
@AdamBuczynski, это никогда не бывает так просто.
В первую очередь у вас всегда будет своя производственная и тестовая среда - и куча функциональных кластеров в худшем случае - внезапно одна папка должна отображать проекты n heroku в качестве довольно основного требования, и все это необходимо каким-то образом организовать так, чтобы сценарий «знал», какой источник вы хотите развернуть, где
2nd вы захотите разделить код между проектами - теперь приходит часть sync_common
, shennanigans с символическими ссылками в разработка заменена фактическим rsynced кодом на Heroku, потому что Heroku требует определенной структуры папок, а bundler и rubygems действительно действительно действительно делают вещи ужасно очень плохо, если вы хотите извлечь общие потоки в gem
3rd, что вам нужно чтобы подключить CI, и он немного изменится по мере того, как должны быть организованы подпапки и git-репо, в конце концов, в самом простом случае использования вы получите вышеупомянутый смысл.
В других проектах мне нужно подключайте Java-сборки, когда вы продаете программное обеспечение нескольким клиентам, нужно будет фильтровать модули, которые устанавливаются в зависимости от требований к установке, и еще что-то,
. Я действительно должен рассмотреть возможность объединения вещей в Rakefile или что-то еще и сделать все так ...