Perl

Overview

OpenShift Container Platform provides
S2I
enabled Perl images for building and running Perl applications.
The Perl S2I builder image
assembles your application source with any required dependencies to create a
new image containing your Perl application. This resulting image can be run
either by OpenShift Container Platform or by a container runtime.

Configuration

The Perl image supports a number of environment variables which can be set to
control the configuration and behavior of the Perl runtime.

To set these environment variables as part of your image, you can place them into
a .s2i/environment file
inside your source code repository, or define them in
the environment
section of the build configuration’s sourceStrategy definition.

Environment variables that control build behavior must be set as part of the s2i build
configuration or in the .s2i/environment file to make them available to the build
steps.

Table 1. Perl Environment Variables

Variable name

Description

ENABLE_CPAN_TEST

When set to true, this variable installs all the cpan modules and runs their tests. By default,
the testing of the modules is turned off.

CPAN_MIRROR

This variable specifies a mirror URL which
cpanminus uses to install dependencies. By default, this URL is not specified.

PERL_APACHE2_RELOAD

Set this to true to enable automatic reloading of modified Perl modules. By
default, automatic reloading is turned off.

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.

Accessing Logs

Access logs are streamed to standard output and as such they can be viewed using
the
oc
logs command. Error logs are stored in the /tmp/error_log file, which can
be viewed using the
oc
rsh command to access the container.

Hot Deploying

Hot deployment allows you to quickly make and deploy changes to your application
without having to generate a new S2I build. To enable hot deployment in this
image, you must set the PERL_APACHE2_RELOAD environment variable to true.
For example, see the oc new-app
command. You can use the oc set env
command to update environment variables of existing objects.

You should only use this option while developing or debugging; it is not
recommended to turn this on in your production environment.

To change your source code in a running pod, use the
oc
rsh command to enter the container:

$ oc rsh <pod_id>

After you enter into the running container, your current directory is set to
/opt/app-root/src, where the source code is located.