gpt4 book ai didi

perl - 如何控制 Dancer webapp 的部署?

转载 作者:行者123 更新时间:2023-12-04 08:29:13 26 4
gpt4 key购买 nike

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

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

编辑:

抱歉,我应该澄清一下,我知道我可以手动完成整个事情。我很惊讶没有快速的方法来使用几个命令进行安装,或者在应用程序本身中指定它认为可以安装各种组件的位置。

由于我在大多数情况下使用 cpanm,这简化了系统 B 上的操作,因为我可以将其解压缩到一个目录,更改为它,运行“cpanm”。并将依赖项和应用程序的模块安装到系统库中。

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

我想我只是想知道自从 What's the best system for installing a Perl web app? 之后事情是否发生了变化。三年前被问到。随着现代 Perl 最先进技术的所有进步,这似乎是现在已经处理的那种问题。

最佳答案

这是一种方法。在 system-a 上创建您的应用程序:

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

在系统-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。您的所有配置文件、脚本等都将单独包含在一个文件夹中。

您可能需要考虑的是将您的所有部门与您的应用程序捆绑在一起。您将在系统-a 上执行此操作。 (请注意,这需要 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 上安装任何东西。您可以提取您的应用程序并运行它。

关于perl - 如何控制 Dancer webapp 的部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6309259/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com