Настройте VPS (Bluehost) для развертывания и обновления приложений RoR (стиль Heroku)

Моя цель — настроить мою среду, чтобы иметь возможность запускать $ git push myapp master на моем локальном компьютере и автоматически развертывать/обновлять мое приложение RoR на моем VPS на Bluehost.

На моем компьютере (Linux-Ubuntu) приложение RoR находится по адресу: /var/www/myapp

Я следил за этим ЗАМЕЧАТЕЛЬНЫМ объяснением учебнику, и у меня есть многофункциональная установка git на моем сервере VPS. в ~/git/repository/myapp

В идеале мое развернутое приложение RoR должно находиться на Bluehost по адресу ~/rails_apps/myapp.

Bluehost автоматически использует Pushion Passenger, и существует символическая ссылка между папкой ~/public_html/myapp и общедоступной частью приложения RoR, расположенной по адресу ~/rails_apps/myapp/public. .

Я застрял с git-хуком после получения, и я не использую Capistrano (должен ли я?)

Я читал много документов с похожими целями, например этот или этот другой, я даже нашел этот гем.

Существуют разные способы достижения одной и той же цели, и я все еще в замешательстве, потому что я не нашел пример ловушки после получения, который соответствует моей потребности (и не понял логики).

Я был в специальном разделе git guides для хуков, и он говорит, что вы можете делать, но не как это сделать, что отлично подходит для всех, кроме новичка.

Любая помощь со сценарием и целью? Будет ли проще, если я буду использовать гем Capistrano и/или git-rails? Другие предложения?

БЛАГОДАРЮ.

ДОБАВЛЕНИЕ:

Привет, я использую Capistano сейчас, но еще не достиг цели.

У меня есть приложение в /var/www/my_app на локальной машине Linux.

Удаленный репозиторий git --bare и --share находится по адресу user@myserver:/server/user/git/repository/my_app.

Я хочу развернуть на /server/user/rails_apps/my_app.

На deploy.rb у меня есть

установить: приложение, "my_app".

установить: репозиторий, "user@myserver:/server/git/repository/my_app.

установить: пользователь, "my_user_name".

установить: домен, "mysite.com".

установить :scm, :git.

set_scm_command, "/server/user/bin/git".

установить: scm_passphrase, "my_phrase".

установить :deploy_to, "/server/user/rails_apps/my_app".

установить :deploy_via, :remote_cache.

установить: tmp_dir, "/сервер/пользователь/tmp".

Когда я запускаю его, он говорит мне: Fatal: Нет удаленного настроенного для вывода списка ссылок. Можете ли вы дать мне некоторые указания? Спасибо.


person Dieglock    schedule 02.03.2014    source источник
comment
Да, будет проще использовать Capistrano. Также обратите внимание на Мину   -  person j_mcnally    schedule 02.03.2014


Ответы (1)


Да, стандартный способ — это Capistrano или Mina и подготовка среды rails в размещенном каталоге. Если вы полны решимости сделать это как в героку, вы можете использовать Vagrant для создания собственной среды героку здесь: https://github.com/openruko/vagrant-openruko

person j_mcnally    schedule 02.03.2014
comment
Я проверю Капистрано, Мину и Бродягу. Я просто хочу продвигать свои приложения и иметь возможность улучшать их после развертывания базовой версии. Я упомянул Heroku, потому что мне нравится работать с git, которым я увлекаюсь. Не уверен, какие еще преимущества даст Vagrant. Я буду исследовать. Спасибо большое. - person Dieglock; 02.03.2014
comment
Бродячая вещь - это подготовка среды heroku-clone, рецепты Vagrant хороши для подготовки ящиков, а не для развертывания кода. - person j_mcnally; 03.03.2014
comment
Привет еще раз. Спасибо за точность. Я исследовал Capistrano и вижу, что он сам по себе является жемчужиной развертывания, и его можно смешивать с Git. На самом деле я продвигаю свой сайт с помощью Git. Первое развертывание скоро будет улучшено за счет многоязычной версии. Повышает ли Capistrano безопасность или скорость отклика страницы? - person Dieglock; 05.03.2014
comment
Нет, совсем нет, он ничего не делает, кроме как получает ваш код из вашего репозитория git или локальной копии на ваш веб-сервер. - person j_mcnally; 05.03.2014
comment
Я использую Capistrano, но еще не заработал. И даже при этом я понимаю, почему люди так часто его используют. Спасибо. - person Dieglock; 06.03.2014
comment
Отлично подходит для развертывания большого веб-сайта, он позволяет вам управлять большим количеством серверов и выполнять определенные задачи на определенных серверах, вы можете развернуть свое приложение с помощью одной команды на 20 серверах, а затем на 5 разных серверах, возможно, очистить кеш или HUP. фоновые работники. - person j_mcnally; 06.03.2014