2.4. Node.js
2.4.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Online には 、Node.js アプリケーションのビルドおよび実行用に S2I が有効な Node.js イメージが含まれています。Node.js S2I ビルダーイメージは、必要な依存関係を使用してアプリケーションソースを組み立てて、Node.js アプリケーションを含む新規イメージを作成します。結果として生成されるイメージは、OpenShift Online または Docker のいずれかで実行できます。
2.4.2. バージョン リンクのコピーリンクがクリップボードにコピーされました!
現時点で在、OpenShift Online は Node.js のバージョン 4 および 6 を提供します。
OpenShift Online v3 では、バージョン 0.10 は非推奨となり、使用できなくなりました。
2.4.3. イメージ リンクのコピーリンクがクリップボードにコピーされました!
RHEL 7 イメージは、Red Hat レジストリーから入手できます。
docker pull registry.access.redhat.com/openshift3/nodejs-010-rhel7 docker pull registry.access.redhat.com/rhscl/nodejs-4-rhel7
$ docker pull registry.access.redhat.com/openshift3/nodejs-010-rhel7
$ docker pull registry.access.redhat.com/rhscl/nodejs-4-rhel7
これらのイメージは nodejs
イメージストリームで使用することができます。
2.4.4. ビルドプロセス リンクのコピーリンクがクリップボードにコピーされました!
S2I は、ソースコードをコンテナーに挿入し、コンテナーにソースコードの実行を準備をさせることで、実行準備が整ったイメージを生成します。S2I では、以下の手順を実行します。
- ビルダーイメージからコンテナーを起動します。
- アプリケーションソースをダウンロードします。
- ビルダーイメージコンテナーにスクリプトとアプリケーションソースをストリーミングします。
- (ビルダーイメージから) assemble スクリプトを実行します。
- 最終的なイメージを保存します。
ビルドプロセスの詳細のまとめについては、「S2I ビルドプロセス」を参照してください。
2.4.5. 設定 リンクのコピーリンクがクリップボードにコピーされました!
Node.js イメージは、環境変数を複数サポートし、環境変数を設定することで Node.js のラインタイムの設定や動作を制御できます。
イメージの一部としてこれらの環境変数を設定するには、ソースコードリポジトリーの中にある .s2i/environment ファイル に配置するか、ビルド設定の sourceStrategy
定義の環境セクションに定義します。
また、新規アプリケーションの作成時に既存のイメージを使用するか、デプロイメント設定などの既存のオブジェクトの環境変数を更新して環境変数を設定できます。
ビルドの動作を制御する環境変数は、s2i ビルド設定または .s2i/environment ファイルの一部として設定して、ビルドの手順で利用できるようにする必要があります。
変数名 | 説明 |
---|---|
|
|
|
デバッグポート。 |
| カスタムの NPM レジストリーのミラー URL。全 NPM パッケージはビルドプロセス中にミラーリンクからダウンロードされます。 |
2.4.6. ホットデプロイ リンクのコピーリンクがクリップボードにコピーされました!
ホットデプロイでは、新しい S2I ビルドを生成する必要なしに、アプリケーションに変更をすばやく加え、デプロイすることができます。アプリケーションのソースコードに加えられた変更を即座に検出するには、環境変数を DEV_MODE=true
に指定してビルドイメージを実行する必要があります。
新規アプリケーションの作成時 または 既存のオブジェクトの環境変数の更新時 に、新しい環境変数を設定できます。
DEV_MODE=true
の環境変数は、開発時またはデバッグ時にのみ使用するようにしてください。この変数の実稼働環境での使用は推奨されていません。
実行中の Pod のソースコードを変更するには、コンテナーに対するリモートシェルを開きます。
oc rsh <pod_id>
$ oc rsh <pod_id>
実行中のコンテナーに入ると、現在のディレクトリーは、ソースコードが配置されている /opt/app-root/src に変わります。
2.4.7. Node.js テンプレート リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Online には、サンプル Node.js アプリケーションをデプロイするためのサンプルテンプレートが含まれています。このテンプレートは、ストレージの永続ボリュームを使用して MongoDB データベースを含む Node.js のサンプルアプリケーションをビルドし、デプロイします。
サンプルアプリケーションは、以下のコマンドで rhscl/nodejs-4-rhel7
イメージを使用してビルドし、デプロイできます。
oc new-app --template=nodejs-mongo-persistent
$ oc new-app --template=nodejs-mongo-persistent