2015-01-09 2 views
1

Я совершенно не знаком с развертыванием рельсов. После googling мне все еще трудно понять, как развернуть приложения rails.Rails 4.2 capistrano 3 развертывание

Итак, мои вопросы:

  1. После настройки VPS со всеми рельсами зависимостями, где я храню кодовую? Корневой каталог VPS или некоторых конкретных местоположений, например. www/ или public/?

  2. Должен ли я загружать всю папку приложений рельсов или только ее часть? У меня есть paperclip в моем приложении rails, а paperclip создает каталог system/ в папке public/, поэтому я должен загрузить system/?

  3. В Capistrano 3 есть поле repo_url, я знаю, что они поддерживают file://, https://, ssh://, or svn+ssh://, но большинство статей о capistrano помещают репозитории github в это. Однако у меня нет такого репозитория github. Что мне тогда вводить?

Благодарим за внимание.

+0

О # 3, что вы используете для управления исходным кодом, если вы не используете GitHub? –

ответ

0

Вы можете set up your own private git server, то в deploy.rb вы можете поставить что-то вроде

set :repo_url, 'ssh://[email protected]_ip/path/to/your_git_repo.git'

Когда вы фиксируете ваши изменения в мерзавца репо, вы не должны загрузить приложение на сервер. Capistrano загрузит приложение для вас при развертывании.

где я могу разместить свою базу кода? Это определяется тем, что вы положили в deploy.rb например

set :deploy_to, '/path/to/my_codebase'

ли загрузить каталог /system будет зависеть от того, хотите ли вы скрепку изображений на систему управления версиями. Если нет, вы можете добавить каталог в gitignore. Вот tutorial о том, как развернуть на ubuntu 14.04 пассажира и NGINX. если вы не используете Passenger и Nginx, вы можете перейти к настройке capistrano и внести корректировки в зависимости от вашей настройки.

EDIT

Вам необходимо установить мерзавца на вашей машине и настроить сервер Git на вашем VPS, как описано по ссылке выше, добавить удаленный сервер к вашей локальной машине с помощью

git remote add origin <server>

где «сервер» - это URL-адрес вашего git-репо в VPS, например

ssh://[email protected]_ip/path/to/your_git_repo.git

Теперь, когда вы фиксируете и нажать ваши изменения на сервер, Capistrano развернет последнюю версию на вашем сервере мерзавца.

Here is a link with a guide on how to get started with git

+0

Означает ли это, что я ДОЛЖЕН иметь удаленное git-репо для развертывания через capistrano? Я чувствителен к git, поскольку редко использую git ... –

+0

Удаленное git-репо может быть в том же VPS, где вы развертываете свое приложение. Единственное условие заключается в том, что развертывание пользователя должно иметь права на чтение и запись в каталог, в котором находится репо. в этом случае вы помещаете это в deploy.rb 'set: repo_url, 'ssh: // your_vps_username @ your_vps_ip/path/to/git_repo.git''. Я скоро отредактирую ответ со ссылкой на простой способ начать работу с git. –

+0

Спасибо за ответ. Нужно ли мне сначала git нажимать мою локальную кодовую базу на удаленное git-репо, а затем запустить команду развертывания cap? Или мне просто нужно ограничить развертывание, Капистрано затем подтолкнет мою последнюю кодовую базу и, следовательно, развернет приложение? –

1

Ответы на конкретные вопросы, поднятые:

После настройки VPS со всеми рельсами зависимостями, где я могу хранить свою кодовую? Корневой каталог VPS или некоторых конкретных местоположений , например. www/или public /?

Он будет развернут в папку, указанную параметром :deploy_to. Если не указано, по умолчанию :deploy_to/var/www/#{fetch(:application) См: https://github.com/capistrano/capistrano/blob/05f63f5f333bb261f2a4c4497174361c48143252/lib/capistrano/defaults.rb#L3

Должен ли я загрузить все рельсы папку приложения или только часть? У меня есть paperclip в моем приложении rails, а paperclip создает каталог/каталог в общедоступной/папке, поэтому я должен загрузить систему /?

Paperclip system папка специфична для окружающей среды; каждая среда (разработка, производство, ...) будет иметь свою собственную папку system, в которой будут храниться файлы, загруженные в эту конкретную среду. Эта папка не должна быть частью развертываемого кода.

Рекомендуемый способ передачи таких папок - сохранить их в общей папке на сервере и создать символические ссылки в текущей версии кода, чтобы одна и та же папка использовалась для хранения/извлечения вложений. См. Раздел Section 3. Update custom links в разделе http://robmclarty.com/blog/how-to-deploy-a-rails-4-app-with-git-and-capistrano для получения более подробной информации.

Как уже упоминалось, это относится и к файлу config/database.yml, а также к любому другому файлу, содержащему специфические для окружающей среды конфигурации.

В Capistrano 3, есть поле repo_url, я знаю, что они поддерживают файл: //, https: //, SSH: //, или SVN + SSH: //, но большинство статей о том, как capistrano помещает в него хранилища github. Тем не менее, у меня нет таких репозиторий github. Что мне тогда вводить?

В зависимости от того, где хранится код, который вы развертываете. Если он находится в локальной папке, используйте формат file:://, чтобы указать, где находятся файлы.

Смежные вопросы