Sign inSign up

koscicz/perl

By koscicz

•Updated over 9 years ago

Automated build for https://github.com/container-images/perl

Image
0

339

koscicz/perl repository overview

⁠Perl S2I

This repository contains the sources for S2I builder image for perl 5.24 as well as some sample applications. This is a port to Fedora of software collections Perl located here⁠, that is now using base-runtime and Perl module. Please note that this solution uses httpd 2.4 to display results.

⁠Usage

⁠Docker

First you need to build the builder image. After you have the builder image, you can use it for a S2I build. You can build and run the sample app like this:

$ docker build --tag=koscicz/perl .
$ s2i build https://github.com/container-images/perl.git --context-dir=test/sample-test-app/ koscicz/perl perl-sample-app
$ docker run -p 8080:8080 perl-sample-app

This will build and run you application on 127.0.0.1:8080. You can also build the builder image by running make. This will also tag your image as koscicz/perl.

⁠Openshift

You can use the openshift-template.yml in this repository to run your application in Openshift. You can either use web interface, in which case you'll just have to fill out a form, requiring a source repository for your app and name of this app. In case you want to use cli, you can do it like this, after you login:

$ oc new-project perl-test
$ oc new-app https://raw.githubusercontent.com/container-images/perl/master/openshift-template.yml -p APP_NAME="perl-example" -p SOURCE_REPOSITORY="https://github.com/kosciCZ/perl-example"

These commands will build the sample application on your Openshift platform.

⁠Testing

This repository contains a test folder with some tests to ensure proper functionality. You can run test by using Makefile. You have two options:

  • make all This will build, tag and test the image
  • make test This will run the test on the image, that is defined in the Makefile. By default it is koscicz/perl Or you can execute the test script directly, as described below in Repository organization⁠

⁠Repository organization

  • Dockerfile

    Fedora based Dockerfile.

  • s2i/bin/

    This folder contains scripts that are run by S2I⁠:

    • assemble

      Used to install the sources into a location where the application will be run and prepare the application for deployment (eg. installing modules, etc.). In order to install application dependencies, the application must contain a cpanfile file, in which the user specifies the modules and their versions. An example of a cpanfile⁠ is available within our test application.

      All files with .cgi and .pl extension are handled by mod_perl. If exactly one file with .psgi extension exists in the top-level directory, the mod_perl will be autoconfigured to execute the PSGI application for any request URI path with Plack's mod_perl adaptor.

    • run

      This script is responsible for running the application, using the Apache web server.

    • usage*

      This script prints the usage of this image.

  • contrib/

    This folder contains a file with commonly used modules.

  • test/

    This folder contains some sample applications you can use to test you image.

    • sample-test-app/

      A simple Perl application used for testing purposes by the S2I⁠ test framework.

    • run

      This is a script that runs a test suite on the builder image, to ensure it has all the necessary functionality. Run it by ./run IMAGE, where IMAGE is your builder image.

⁠Environment variables

To set environment variables, you can place them as a key value pair into a .sti/environment file inside your source code repository.

  • ENABLE_CPAN_TEST

    Allow the installation of all specified cpan packages and the running of their tests. The default value is false.

  • CPAN_MIRROR

    This variable specifies a mirror URL which will used by cpanminus to install dependencies. By default the URL is not specified.

  • PERL_APACHE2_RELOAD

    Set this to "true" to enable automatic reloading of modified Perl modules.

  • HTTPD_START_SERVERS

    The StartServers⁠ directive sets the number of child server processes created on startup. Default is 8.

  • HTTPD_MAX_REQUEST_WORKERS

    Number of simultaneous requests that will be handled by Apache. The default is 256, but it will be automatically lowered if memory is limited.

  • PSGI_FILE

    Override PSGI application detection.

    If the PSGI_FILE variable is set to empty value, no PSGI application will be detected and mod_perl not be reconfigured.

    If the PSGI_FILE variable is set and non-empty, it will define path to the PSGI application file. No detection will be used.

    If the PSGI_FILE variable does not exist, autodetection will be used: If exactly one ./*.psgi file exists, mod_perl will be configured to execute that file.

  • PSGI_URI_PATH

    This variable overrides location URI path that is handled path the PSGI application. Default value is "/".

Tag summary

Content type

Image

Digest

Size

138.7 MB

Last updated

over 9 years ago

docker pull koscicz/perl