Лучшая стратегия развертывания локально используемого приложения в Rails 3.1 на Windows 7? - PullRequest
1 голос
/ 04 февраля 2012

Я разрабатываю 2 приложения в Rails 3.1 (скоро обновлюсь) и заметил, что моя текущая стратегия имеет свои недостатки.В настоящее время я делаю следующее:

  • Работаем непосредственно над каталогом разработки, там есть контроль версий с помощью Git (который отлично подходит для меня).
  • Я определилбазы данных, подобные (опущены неинтересные части):

    development:
      database: db/dev.db
    production:
      database: db/dev.db
    
  • У меня оба приложения все время работают в производственном режиме, где порты определены как 3008 и 3009.

  • Время от времени я хочу изменить мелочи и запустить сервер разработки для одного из двух приложений по умолчанию: rails s thin (порт == 3000).

Я заметил, что следующие вещи работают не очень хорошо.

  • Когда я меняю файлы CSS или Javascript, мне часто приходится очищать (и после перестройки разработки) активы.
  • Иногда сервер разработки берет файлы (CSS и Javascript) с одного сервера и использует их для другого сервера.Чтобы избежать этого, я должен вручную очистить кеши браузера.

Какова была бы лучшая стратегия для разработки и параллельного использования двух приложений на моем компьютере?Любые советы и подсказки приветствуются.Должен ли я использовать инструмент развертывания (Capistrano) для этого?Должен ли я бросить свою собственную задачу Rake для разделения?Или я пропускаю какой-то магический переключатель, который заживляет раны (звучит жалко: -))?

Ответы [ 2 ]

1 голос
/ 11 февраля 2012

В конце концов, это смесь изменений, поэтому я отвечаю на свои вопросы и надеюсь, что другие могут чему-то научиться. В конце есть 2 основных решения (и несколько второстепенных):

  • Работа с разными репозиториями для разработки и производства даже на одной машине. Добавьте еще один (голый) для синхронизации двух. Толкай только от разработки, тяни только от производства.
  • Постоянно используйте разные порты для разных приложений. Сделайте схему как:
    • appA: dev ==> 4001, prod ==> 3001
    • appB: dev ==> 4002, prod ==> 3002
    • ...

Вот изменения, которые я сделал. rails/root является корневым каталогом моего приложения, общая структура каталогов следующая:

rails/
  root/
  another/
  ...
  bare/
    root.git/
    another.git/
    ...
  production/
    root/
    another/
    ...
  • Создайте 2 новых репозитория из старого, один как bare , другой только для производства:
    1. mkdir rails/production
    2. mkdir rails/bare
    3. cd rails/bare
    4. git clone ../root --bare
    5. cd ../root
    6. git remote add bare ../bare/root
    7. cd rails/production
    8. git clone ../bare/root
    9. cd root
    10. git remote add bare ../../bare/root
  • Не используйте одну и ту же базу данных для разработки и производства, просто чтобы быть уверенным, что Git может творить чудеса.
  • Разработка (только) в репозитории разработки.
  • После достаточного количества тестов выполните следующие 2 шага:
    1. root> git push bare
    2. root/../production/root> git pull bare
  • Запустите сервер разработки (только) с: root> rails s thin -p 4009
  • и производственный сервер (только) с: root/../production/root> rails s thin -e production -p 3009

В результате у меня есть немного больше работы для перехода от разработки к производству, но я устраню те небольшие раздражения, которые были вокруг все время.

0 голосов
/ 11 февраля 2012

Запуск производственных серверов на компьютере разработчика или разработка на рабочем компьютере - это необычная, даже не одобряемая установка. Используйте свою локальную машину для разработки, запустите сервер в режиме разработки и запустите свой набор тестов. Зафиксируйте изменения в git. Затем время от времени выполняйте развертывание на сервере, работающем в производственном режиме. Это рекомендуемая установка. В качестве рабочего сервера вы можете настроить свой собственный (например, свой собственный или облачный, например, EC2) и использовать Capistrano для развертывания. Однако проще и с гораздо меньшими трудностями вы можете развернуть службу, например Heroku . Все, что вам нужно сделать, это git push, и приложение будет развернуто. Даже один случай параллелизма на Heroku бесплатен.

Кроме того, Windows не очень хорошо поддерживается средой для запуска сервера Rails, вам лучше работать с Linux. Для разработки Windows может помочь, но вы определенно будете в меньшинстве. Большинство людей работают на Mac или Linux. Иногда люди рекомендуют устанавливать Ubuntu Linux поверх Windows на виртуальной машине для разработки Rails.

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