Сегодня наткнулся на замету SRI в его блоге
Mojolicious in the cloud: Hello Heroku! blog.kraih.com/mojolicious-in-the-cloud-hello-heroku и сам решил попробовать задеплоить на Heroku «Hello World!» приложение! Поехали!
- Создаем аккаунт на Heroku api.heroku.com/signup
- Устанавливаем консольный клиент для Heroku toolbelt.herokuapp.com/
- Авторизуемся на Heroku через консольный клиент (вводим указанный при регистрации email и пароль):
$ heroku login
Для запуска приложения на Heroku необходимо все три файла:
- Файл самого приложения
- Файл «Makefile.PL» содержащий список зависимостей нашего приложения
- Исполняемый файл «Perloku», который «расскажет» Heroku как запустить веб-севрвер для нашего приложения
Создадим простое Mojolicious-приложение (назовем его «engine») и все необходимые файлы.
$ mkdir engine
$ cd engine
$ touch engine.pl
$ touch Makefile.PL
$ touch Perloku
$ chmod +x Perloku
$ chmod +x engine.pl
Обратите особое внимание на две последние команды (без них ничего не работает):
$ chmod +x Perloku
$ chmod +x engine.pl
В файле «engine.pl» напишем код простейшего Mojolicious::Lite-приложения:
#!/usr/bin/env perl
use Mojolicious::Lite;
get '/' => {text => 'Hello Xoma Engine! Follow me <a href="http://twitter.com/xomaa/">http://twitter.com/xomaa/</a>'};
app->start;
В файле «Makefile.PL» укажем зависимости нашего приложения (нам необходим только Mojolicious версии 2.98):
#!/usr/bin/env perl
use ExtUtils::MakeMaker;
WriteMakefile(
PREREQ_PM => {'Mojolicious' => '2.98'}
);
В файле «Perloku» укажем как запустить веб-сервер для нашего engine:
#!/bin/sh
./engine.pl daemon -l http://*:$PORT -m production
Готово! Деплоим в облако!
$ git init
$ git add.
$ git commit -m 'Initial version'
$ heroku create -s cedar --buildpack github.com/judofyr/perloku.git
$ git push heroku master
Должны получить примерно вот такой вывод:
-----> Heroku receiving push
-----> Fetching custom buildpack… done
-----> Perloku app detected
-----> Vendoring Perl
Using Perl 5.14.2
-----> Installing dependencies
--> Working on /tmp/build_33g9zcnlzbkzt
Configuring /tmp/build_33g9zcnlzbkzt… OK
==> Found dependencies: Mojolicious
--> Working on Mojolicious
Fetching search.cpan.org/CPAN/authors/id/T/TE/TEMPIRE/Mojolicious-2.98.tar.gz… OK
Configuring Mojolicious-2.98… OK
Building Mojolicious-2.98… OK
Successfully installed Mojolicious-2.98
<== Installed dependencies for /tmp/build_33g9zcnlzbkzt. Finishing.
1 distribution installed
Dependencies installed
-----> Discovering process types
Procfile declares types -> (none)
Default types for Perloku -> web
-----> Compiled slug size is 12.4MB
-----> Launching… done, v4
simple-beach-6843.herokuapp.com deployed to Heroku
Как видим, используется Perl 5.14.2 (очень хорошо!) и установка Mojolicious прошла успешно!
Проверяем результат
simple-beach-6843.herokuapp.com/
Вот так буквально за 5 минут мы создали и развернули работающее веб-приложение на
Perl и
Mojolicious!
Со всеми возможностями облачной платформы Heroku стоит ознакомиться более подробно, о чем, возможно, будут еще заметки.