如何控制Dancer webapp的部署?

Oes*_*sor 8 perl dancer

假设我有一个独立的Dancer webapp.我可以通过运行make dist,获取tarball然后通过cpanm或类似方法安装它来将其部署到主机.但是,我似乎无法找到如何控制此部署.当我在应用程序上创建dist时,然后在其他地方安装应用程序,它似乎只是安装应用程序的模块.但是,应用程序脚本,各种html文件和模板,环境配置文件未安装到本地文件系统.

什么是从系统上的webapp开始的正确方法 - > tarball - >系统b上的webapp?

编辑:

对不起,我应该澄清,我明白我可以手动完成所有事情.我很惊讶没有快速方法可以使用几个命令进行安装,或者在应用程序本身中指定感觉各种组件可以安装的地方.

因为我在大多数情况下使用cpanm,这简化了系统B上的操作,因为我可以将其提取到目录,更改为它,运行'cpanm'.它将依赖项和应用程序的模块安装到系统lib中.

但是,这会导致应用程序模块位于<>/lib /以及系统perllib安装路径中.这也意味着用户需要了解一下perl.

我想我只是想知道事情是否发生了变化,因为什么是安装Perl网络应用程序的最佳系统?有人在三年前被问过.随着现代Perl技术发展的所有进步,似乎这就是现在已经处理过的那类问题.

Nav*_*eed 5

这是一种方式.在system-a上创建你的应用:

dancer -a Foo
cd Foo
perl Makefile.PL
make dist
scp Foo-0.1.tar.gz system-b:
ssh system-b
Run Code Online (Sandbox Code Playgroud)

在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
Run Code Online (Sandbox Code Playgroud)

此方法将您的应用程序安装到/ opt/Your-App.所有配置文件,脚本等都将自包含在一个文件夹中.

您可能需要考虑的事情是将所有deps与您的应用捆绑在一起.你可以在system-a上执行此操作.(请注意,这需要system-a和system-b具有相同的体系结构)捆绑deps的简单方法是使用App :: cpanminus:

cpanm -L extlib Dancer Plack YAML # and any other deps
Run Code Online (Sandbox Code Playgroud)

然后,当您部署启动应用程序时,您将执行以下操作:

perl -Ilib -Iextlib/lib/perl5 -Iextlib/lib/perl5/x86_64-linux ./bin/app.pl
Run Code Online (Sandbox Code Playgroud)

这种方法使得您无需在system-b上安装任何东西.您只需提取您的应用并运行它即可.