【问题标题】:How do I control a Dancer webapp's deployment?如何控制 Dancer webapp 的部署?
【发布时间】:2011-06-10 16:21:40
【问题描述】:

假设我有一个独立的 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 最先进技术的所有进步,这似乎是现在已经处理的那种问题。

【问题讨论】:

    标签: perl dancer


    【解决方案1】:

    这是一种方法。在 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 上安装任何东西。您可以提取您的应用并运行它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      • 2013-02-13
      • 2015-05-29
      • 2020-10-26
      • 1970-01-01
      相关资源
      最近更新 更多