2.5. Perl
2.5.1. 概要
OpenShift Online には 、Perl アプリケーションのビルドおよび実行用に S2I が有効な Perl イメージが含まれています。Perl S2I ビルダーイメージは、必要な依存関係を使用してアプリケーションソースを組み立てて、Perl アプリケーションを含む新規イメージを作成します。結果として生成されるイメージは、OpenShift Online または Docker のいずれかで実行できます。
2.5.2. バージョン
現時点で、OpenShift Online は Perl のバージョン 5.16、5.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 では、以下の手順を実行します。
- ビルダーイメージからコンテナーを起動します。
- アプリケーションソースをダウンロードします。
- ビルダーイメージコンテナーにスクリプトとアプリケーションソースをストリーミングします。
- (ビルダーイメージから) assemble スクリプトを実行します。
- 最終的なイメージを保存します。
ビルドプロセスの詳細のまとめについては、「S2I ビルドプロセス」を参照してください。
2.5.5. 設定
Perl イメージは多数の環境変数を複数サポートし、環境変数を設定することで Perl のラインタイムの設定や動作を制御できます。
イメージの一部としてこれらの環境変数を設定するには、ソースコードリポジトリーの中にある .s2i/environment ファイル に配置するか、ビルド設定の sourceStrategy
定義の環境セクションに定義します。
また、新規アプリケーションの作成時に既存のイメージを使用するか、デプロイメント設定などの既存のオブジェクトの環境変数を更新して環境変数を設定できます。
ビルドの動作を制御する環境変数は、s2i ビルド設定または .s2i/environment ファイルの一部として設定して、ビルドの手順で利用できるようにする必要があります。
変数名 | 説明 |
---|---|
|
|
| この変数は、cpanminus が依存関係のインストールに使用するミラーの URL を指定します。デフォルトではこの URL は指定されていません。 |
|
これを |
| StartServers ディレクティブは、起動時に作成される子サーバープロセスの数を設定します。デフォルトは 8 です。 |
| 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