Pull to refresh

Locum + Capistrano + git на Windows: маленькое приключение с размещением

Reading time 3 min
Views 3.7K
Эту маленькую заметку я постаю, видимо, больше для себя. Сегодня у меня был первый опыт выгрузки приложения RoR на хостинг Locum с использованием связки Capistrano и git на Windows 7. Пришлось помучаться — первый блин чуть не встал комом.

Введение


Пожалуй для начала опишу чего я хотел получить.
Захотелось мне поиграться с Synergy (гем электронной коммерции для Rails 3.0.10). Заодно думал попробовать насколько удобно деплоить аппликейшен на локум. Следовал инструкциям — и вроде все шло пусть и не как по маслу, но для первого раза нормально.

Мои шаги


  1. Завел аккаунт на Locum
  2. Создал там проект для RoR на Ruby 1.9.3
  3. Установил Ruby 1.9.3 себе на локальную машину.
  4. Установил Git 1.7.8; поплакался на то, что по-прежнему в консоли гита на винде отвратно работает тектовый ввод «irb» (имею в виду перемещение курсора клавишами клавиатуры)
  5. Установил Aptana 3 — и, как оказалось в последствии, правильно сделал.
  6. Сначала по ошибке установил последние рельсы, вызвав дефолтную инсталяцию гема.
  7. Потом решил следовать все-таки инструкции установки Synergy и запустил установку рельс версии 3.0.9 (!), что оказалось напрасным.
  8. «bundle install» выполнить не смог — оказалось что добавленные по инструкции гемы зависят от версии рельс 3.0.10; поправил в Gemfile версию и поехал дальше.
  9. На шаге «rails g spree:site -f» инструкции Synergy получил ошибку по поводу «libmysql.dll»
  10. Скачал инсталлятор сервера MySql5 — напрасно по двум причинам: во-первых сервер не нужен, а нужен лишь «MySql connector»; во-вторых, как потом оказалось, нужна была шестая версия либы; тут, чесно говоря начал расстраиваться — думал на сервере в случае чего я либу не смогу обновить.
  11. Дальше по инструкции все прошло нормально; приложение запустилось.
  12. Сделал первый каммит; стал думать как деплоить. Locum рекомендует пользоваться Capistrano — не стал возражать.
  13. Поставил Cap; скрестил инструкцию настройки капа и сгенерированный хостером «deploy.rb»
  14. Создал через SSH (использовал vim, только потом узнал о менеджере файлов поверх SSH) на хостинге «database.yaml»:
    development:
    adapter: mysql2
    database: *db_name*
    username: *db_user*
    encoding: utf8

    production:
    adapter: mysql2
    database: *db_name*
    username: *db_user*
    password: 123... # Упс чуть не запалил хитрый пасс
    host: mysql0.locum.ru
    encoding: utf8

    test:
    adapter: mysql2
    database: *db_name*
    username: *db_user*
    encoding: utf8
  15. Начал работать по инструкции для Cap; «cap deploy:setup» отработала нормально.
  16. И тут меня ждала неудача с «cap deploy»:
    $ cap deploy
    * executing `deploy'
    * executing `deploy:update'
    ** transaction: start
    * executing `deploy:update_code'
    executing locally: "git ls-remote /e/Projects/RoR/testr/ HEAD"
    command finished in 80ms
    * getting (via checkout) revision 7041c492377617a09251281c1b9544a955892f70 to
    C:/Users/.../Temp/20120128194958
    executing locally: git clone -q /e/Projects/RoR/testr/ C:/Users/dev/
    AppData/Local/Temp/20120128194958 && cd C:/Users/dev/AppData/Local/Temp/20120128
    194958 && git checkout -q -b deploy 7041c492377617a09251281c1b9544a955892f70
    Too many arguments.
  17. Стал рыскать по сети и вот что нашел
  18. Тоже начал хачить злополучный «base.rb» — решил там сразу разбивать команду и выполнять подкоманды последовательно в цикле, чтоб хотя бы удостовериться что в этом проблема. Но увы «cap deploy» почему-то не реагировал на мои хаки. Вопрос для меня остался открытым, т.к. я забил на бодание со стеной и решил поискать иное решение — пусть не такое удобное как «cap deploy», но работающее на винде (в сети пишут, что на Линукс такая беда не наблюдается).
  19. В конечном итоге я открыл мастера деплоя в Aptana, выбрал там деплой через sFTP и пока приложение выгружалось решил изложить свои приключения в блоге.

Заключение


Спасибо Aptana!
Надеюсь кому-то это будет полезно!
Пока о Locum впечатления хорошие — несмотря на малый мой опыт, проблем особых не возникло и в саппорт не обращался.
А на работу связки Cap и git не знаю стоит ли постать баг? Да и на кого из них пока не понятно. Уж точно не на CMD.exe — он уже давно наверное не саппортается.

Upd: Инструкция для установки Synergy обновлена. Молодцы!
Tags:
Hubs:
+8
Comments 19
Comments Comments 19

Articles