Public Repository

Last pushed: 10 days ago
Short Description
Perl 5.24 platform for building and running applications
Full Description

Perl Docker image

This repository contains the source for building various versions of
the Perl application as a reproducible Docker image using
source-to-image.
Users can choose between RHEL and CentOS based builder images.
The resulting image can be run using Docker.

Usage

To build a simple perl-sample-app application,
using standalone S2I and then run the
resulting image with Docker execute:

  • For RHEL based image

     $ s2i build https://github.com/openshift/s2i-perl.git --context-dir=5.24/test/sample-test-app/ rhscl/perl-524-rhel7 perl-sample-app
     $ docker run -p 8080:8080 perl-sample-app
    
  • For CentOS based image

     $ s2i build https://github.com/openshift/s2i-perl.git --context-dir=5.24/test/sample-test-app/ centos/perl-524-centos7 perl-sample-app
     $ docker run -p 8080:8080 perl-sample-app
    

Accessing the application:

$ curl 127.0.0.1:8080

Repository organization

  • <perl-version>

    • Dockerfile

      CentOS based Dockerfile.

    • Dockerfile.rhel7

      RHEL based Dockerfile. In order to perform build or test actions on this
      Dockerfile you need to run the action on a properly subscribed RHEL machine.

    • 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 the S2I
      test framework.

      • sample-test-app/

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

      • run

        This script runs the S2I test framework.

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 "/".

Docker Pull Command
Owner
centos

Comments (0)