Red Hat Training

A Red Hat training course is available for OpenShift Online

2.5. Perl

2.5.1. 概要

OpenShift Online には 、Perl アプリケーションのビルドおよび実行用に S2I が有効な Perl イメージが含まれています。Perl S2I ビルダーイメージは、必要な依存関係を使用してアプリケーションソースを組み立てて、Perl アプリケーションを含む新規イメージを作成します。結果として生成されるイメージは、OpenShift Online または Docker のいずれかで実行できます。

2.5.2. バージョン

現時点で、OpenShift Online は Perl のバージョン 5.165.20、および 5.24 をサポートします。

2.5.3. イメージ

RHEL 7 イメージは、Red Hat レジストリーから入手できます。

$ docker pull registry.access.redhat.com/openshift3/perl-516-rhel7
$ docker pull registry.access.redhat.com/rhscl/perl-520-rhel7
$ docker pull registry.access.redhat.com/rhscl/perl-524-rhel7

これらのイメージは、perl イメージストリームで使用することができます。

2.5.4. ビルドプロセス

S2I は、ソースコードをコンテナーに挿入し、コンテナーにソースコードの実行を準備をさせることで、実行準備が整ったイメージを生成します。S2I では、以下の手順を実行します。

  1. ビルダーイメージからコンテナーを起動します。
  2. アプリケーションソースをダウンロードします。
  3. ビルダーイメージコンテナーにスクリプトとアプリケーションソースをストリーミングします。
  4. (ビルダーイメージから) assemble スクリプトを実行します。
  5. 最終的なイメージを保存します。

ビルドプロセスの詳細のまとめについては、「S2I ビルドプロセス」を参照してください。

2.5.5. 設定

Perl イメージは多数の環境変数を複数サポートし、環境変数を設定することで Perl のラインタイムの設定や動作を制御できます。

イメージの一部としてこれらの環境変数を設定するには、ソースコードリポジトリーの中にある .s2i/environment ファイル に配置するか、ビルド設定の sourceStrategy 定義の環境セクションに定義します。

また、新規アプリケーションの作成時に既存のイメージを使用するか、デプロイメント設定などの既存のオブジェクトの環境変数を更新して環境変数を設定できます。

注記

ビルドの動作を制御する環境変数は、s2i ビルド設定または .s2i/environment ファイルの一部として設定して、ビルドの手順で利用できるようにする必要があります。

表2.4 Perl 環境変数

変数名説明

ENABLE_CPAN_TEST

true に設定している場合は、この変数は全 cpan モジュールをインストールして、そのテストを実行します。デフォルトでは、モジュールのテストはオフになっています。

CPAN_MIRROR

この変数は、cpanminus が依存関係のインストールに使用するミラーの URL を指定します。デフォルトではこの URL は指定されていません。

PERL_APACHE2_RELOAD

これを true に設定すると、変更した Perl モジュールの自動再読み込みが有効になります。デフォルトでは、自動再読み込みはオフになっています。

HTTPD_START_SERVERS

StartServers ディレクティブは、起動時に作成される子サーバープロセスの数を設定します。デフォルトは 8 です。

HTTPD_MAX_REQUEST_WORKERS

Apache により処理される同時要求の数。デフォルトは 256 ですが、メモリーに制限がある場合は自動的に数値が下がります。

2.5.6. ログへのアクセス

アクセスログは、標準出力にストリーミングされるので、oc logs コマンドを使用して表示可能です。エラーログは /tmp/error_log ファイルに保存されているので、コンテナーにアクセスする oc rsh コマンドを使用して表示できます。

2.5.7. ホットデプロイ

ホットデプロイでは、新しい S2I ビルドを生成する必要なしに、アプリケーションに変更をすばやく加え、デプロイすることができます。このイメージでホットデプロイを有効化するには、PERL_APACHE2_RELOAD 環境変数を true に設定する必要があります。たとえば、oc new-app コマンドを参照してください。oc set env コマンドを使用して、既存オブジェクトの環境変数を更新できます。

警告

このオプションは、開発またはデバッグの時にだけ使用するようにしてください。 実稼働環境でこの設定をオンにすることは推奨しません。

実行中の Pod でソースコードを変更するには、oc rsh コマンドを使用して、コンテナーに入ります。

$ oc rsh <pod_id>

実行中のコンテナーに入った後に、現在のディレクトリーを、ソースコードが配置されている /opt/app-root/src に設定します。

2.5.8. Perl テンプレート

OpenShift Online には、サンプル Dancer アプリケーションをデプロイするためのサンプルテンプレートが含まれています。このテンプレートは、ストレージの永続ボリュームを使用して MySQL データベースを含む Perl 5.24 のサンプルアプリケーションをビルドし、デプロイします。

サンプルアプリケーションは、以下のコマンドで rhscl/perl-524-rhel7 イメージを使用してビルドし、デプロイできます。

$ oc new-app --template=dancer-mysql-persistent