A buildpack for running Perl-based applications on Stackato version 3 and higher.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
LICENSE.txt
README.md

README.md

Stackato Perl Buildpack

stackato-buildpack-perl is an ActiveState buildpack for running Perl-based applications on Stackato version 3 and higher.

It uses ActivePerl 5.16 already included in the default Alsek stack. Dependencies can be installed with Carton or PPM.

Usage

To use this buildpack specify the URI of the repository when pushing an application to Stackato:

stackato push <APPNAME> -n --buildpack https://github.com/ActiveState/stackato-buildpack-perl.git

At least one of the following files must exist to identify your app as a Perl application:

Filename Usage
app.psgi Indicates this a Perl application. Only needed when none of the other files exist.
cpanfile.snapshot Install dependencies with carton --deployment.
cpanfile Ignored if cpanfile.snapshot exists as well. Otherwise install dependencies with carton.
requirements.ppm A simple text file listing required PPM package names; installed with ppm.

The --cached option will be added to the carton install commands if dependencies have been bundled with the application in the vendor/cache/ directory,

Specifying module requirements inside the stackato.yml file is not supported by this buildpack. That feature is only implemented in the legacy buildpack for backwards compatibility with Stackato 2.

PPM and Carton can be used together, but Carton will not "see" any modules installed by PPM, so might install them again.

If your application contains an app.psgi file, then this buildpack will generate a default start command using uWSGI as the PSGI server.

Log files

The Carton and PPM log files are stored with the generated droplet and can be inspected with:

$ stackato files . logs/cpanm.log
$ stackato files . logs/ppm4.log

Examples

A minimal example could consist of just a single app.psgi file:

sub {
  return ['200', ['Content-Type' => 'text/plain'], ['Hello World']];
};

More functional samples can be found under the Stackato-Apps organization on Github:

Sample App Details
mojo-scalingdemo Mojolicious app; uses Carton to install modules.
perlcritic.com Installs prerequisites via PPM; uses Plack as PSGI server.

License

This buildpack is released under version 2.0 of the Apache License.