Назад | Перейти на главную страницу

Развертывание Rails с помощью Git

Я изучал Rails в течение последних нескольких дней, и в течение этого периода я тестировал Heroku, и это здорово - просто выполнить «git push heroku», и все приложение запущено и работает. Проблема в том, что у меня уже есть VPS и мне нужен аналогичный метод развертывания. Как бы я это сделал? Какой веб-сервер лучше всего использовать? Моя проблема не в производительности - мне просто нужно быстрое и легкое развертывание. Это вообще возможно?

Совершенно верно, я развертываю таким образом.

Некоторое время назад я написал статью о git-хуках. Речь идет об автоматическом тестировании вашей кодовой базы перед тем, как что-либо вносить в SCM. Но вы можете легко переписать его для выполнения ваших задач Capistrano (или настраиваемого сценария развертывания), например, когда вы фиксируете или объединяетесь с основной веткой.

Может быть, это поможет вам в качестве отправной точки: http://www.relativkreativ.at/articles/keeping-your-codebase-healthy-with-git-hooks

(Бесстыдный плагин: на данный момент я пишу электронную книгу, в которой будет рассказано обо всем, от настройки вашего VPS для хостинга Rails до развертывания с помощью простого git push, поэтому вы можете подумать о подписке на мой информационный бюллетень в конце этой статьи как уведомление, когда я отправлю его.)

Надеюсь, это немного поможет!

Мое предложение - проверить Capistrano; он предлагает довольно безболезненное развертывание после того, как вы настроили свои конфигурации. Я проверял это в последнее время, и он действует очень похоже на rake; ты просто бежишь cap сопровождаемый аргументом или двумя, и он запускает развертывание прямо из вашего git или svn репо.

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