Здравствуйте, уважаемые программисты или те, кто попал сюда случайно, сегодня речь пойдет о деплои ruby приложения на heroku. Бесплатный для небольших приложений хостинг, полюбившийся многим ruby, python разработчикам.
Почему heroku?
В первую очередь, потому что бесплатный, во-вторых, удобная развертка приложения позволяет сосредоточиться на разработке, а не на решении разнообразных проблем околопрограммерского плана.
Инструментарий для деплоя
*nix система, куда без нее? ) установленный ruby, git, если вы знаете слово деплой, значит, для вас это до боли знакомые слова )
Итак, начнем
Регистрируемся на сайте heroku (куда в наши дни без регистрации? ). Создаем папку где будем размещать наше sinatra-приложение (почему именно sinatra? потому что мне нравится этот фреймворк – он легкий, несложный и позволяет сосредоточиться на изучении языка) на локальной машине, пусть это будет ~/projects/heroku-sinatra. Далее создаем (как и для всех Rack-подобных приложений) файлы в корне config.ru и Gemfile
config.ru будет содержать следующее:
1 2 |
|
этим самым мы подключаем файл приложения и запускаем оное.
Далее Gemfile для управления зависимостями, т.к. наше приложение простое и создано специально для ознакомления, нам достаточно написать пару строк:
1 2 3 |
|
Далее создадим файл ./app/bootstrap.rb, который и будет являться нашим несложным приложением для экспериментов.
1 2 3 4 5 6 |
|
Осталось несколько команд до деплоя. Тут вступает в дело gem heroku
gem install heroku
– устанавливаем необходимый гем, если вы еще не сделали этого ранее.
Далее нужно рассказать heroku кто же собирается деплоить (или попросту представиться, воспитанные ведь мы), для этого пишем в консоли
heroku login
и вписываем почту, которую вы указали в первом шаге (мы ведь ее еще помним, правда?) и пароль, который придет на email.
Половина дела сделана, остались сущие пустяки.
git init
– инициализируем git репозиторй
git add .
– добавляем в него все файлы (рекурсивно)
git commit -am 'hello heroku'
– сохраняем изменения в локальном репозитории
heroku create %желаемое имя приложения%
– мы ведь хотим чтобы наше первое приложение имело благозвучное имя, если нет, то последний параметр можно опустить, heroku тоже умеет придумывать неплохие имена )
git push -u heroku master
– отправляем приложение на сервер
После успешного деплоя
Если все прошло гладко, такое разве бывает спросите вы, бывает – отвечу я. :)
heroku open
запустит нам наше приложение в браузере (нам ведь сложно оторваться от так полюбившейся консоли и взять в руки мышку, чтобы запустить браузер)
Возможные проблемы
Здесь небольшой список проблем, с которыми вы можете столкнуться (с которыми столкнулся я) при деплое.
Проблема с ключами – “Permission denied (publickey)”, то
heroku keys::add ~/.ssh/id_rsa.pub
– отправляем наши публичные ключики на сервер, чтобы heroku знал с кем имеет дело. Если нет ключа, то генерируем его
ssh-keygen -t rsa
– и клацаем несколько раз Enter.
В приложение закралась ошибка, то
heroku logs
– отобразит логи, в которых можно будет отыскать “косячное” место, исправить его и попробовать снова. Нам, разработчикам, сдаваться никак нельзя :)
Теперь ваше ‘Hello, world’ на Ruby, можно показывать друзьям/подругам/бабушке, да вообще кому захотите. Удачи вам в кодинге и меньше коварных ошибок в приложениях. В комментариях жду вопросов, если таковые появятся или предложения от руби-гуру, где накосячил я, я исправлюсь, чесслово :)