Как я могу контролировать развертывание веб-приложения Dancer? - PullRequest
8 голосов
/ 10 июня 2011

Скажем, у меня есть автономное веб-приложение Dancer. Я могу развернуть его на хосте, запустив make dist, получив tarball, затем установив его через cpanm или аналогичный. Тем не менее, я не могу найти, как контролировать это развертывание. Когда я просто создаю dist в приложении, а затем устанавливаю приложение в другом месте, кажется, что оно устанавливает модули приложения. Однако сценарий приложения, различные html-файлы и шаблоны, файлы конфигурации среды не устанавливаются в локальную файловую систему.

Как правильно перейти из webapp в системе a -> tarball -> webapp в системе b?

Edit:

Извините, мне следовало уточнить, что я понимаю, что могу все это сделать вручную. Я просто удивлен, что нет быстрого способа выполнить установку с помощью пары команд или указать в самом приложении, где, по его мнению, могут быть установлены различные компоненты.

Поскольку я по большей части использую cpanm, это упрощает работу системы B, так как я могу просто извлечь ее в каталог, перейти на него и запустить cpanm. и он устанавливает зависимости и модули приложения в системную библиотеку.

Однако это приводит к тому, что модули приложения находятся как в <> / lib /, так и в пути установки perllib системы. Это также означает, что пользователь должен немного понимать Perl.

Полагаю, я просто пытаюсь выяснить, изменились ли вещи после Какая лучшая система для установки веб-приложения на Perl? спросили три года назад. При всех достижениях современного Perl-уровня кажется, что это та проблема, с которой мы уже столкнулись.

1 Ответ

5 голосов
/ 11 июня 2011

Вот один из способов.Создайте ваше приложение на system-a:

dancer -a Foo
cd Foo
perl Makefile.PL
make dist
scp Foo-0.1.tar.gz system-b:
ssh system-b

На system-b:

sudo tar xf Foo-0.1.tar.gz -C /opt
cd /opt/Foo-0.1
perl Makefile.PL # this will tell you the deps you need to install
# install needed deps if any
make
sudo make install
./bin/app.pl # this starts your app

Этот подход устанавливает ваше приложение в / opt / Your-App.Все ваши конфигурационные файлы, сценарии и т. Д. Будут содержаться в одной папке.

Что-то, что вы можете рассмотреть, - это связать все ваши приложения с вашим приложением.Вы бы сделали это в системе-а.(Обратите внимание, что для этого требуется, чтобы system-a и system-b имели одинаковую архитектуру). Простой способ связать ваши deps - это App :: cpanminus:

cpanm -L extlib Dancer Plack YAML # and any other deps

Затем при развертывании запуска приложения выбудет делать что-то вроде:

perl -Ilib -Iextlib/lib/perl5 -Iextlib/lib/perl5/x86_64-linux ./bin/app.pl

Этот подход делает так, что вам не нужно ничего устанавливать на system-b.Вы можете просто извлечь ваше приложение и запустить его.

...