パッケージングクライアント拡張機能
Liferay セルフホスト型 Liferay SaaS Liferay PaaS
Liferay DXP 7.4
クライアント拡張プロジェクトは、 Liferay Universal File Format Archives (LUFFAs) と呼ばれるデプロイ可能なアーカイブとして構築され、拡張子は .zip です。 各LUFFAは特定の構造を持ち、特定のコンポーネントファイルを定義しています。これらのファイルは、プロジェクトで提供されていない場合は自動的に生成されます。 Liferayワークスペースは、クライアント拡張プロジェクトをビルドする際にパッケージ化します。 パッケージングがどのように機能するかを理解することは、クライアントのエクステンションを組み立てたり、異なるプロセスでLUFFAを作成したりする上で重要です。
これはLUFFAの構造です。
.
├── batch
│ └── **/*.batch-engine-data.json
├── *.client-extension-config.json
├── Dockerfile
├── LCP.json
├── static
│ └── **/*
├── WEB-INF
│ └── liferay-plugin-package.properties
└── [microservice resources]
batch
バッチ フォルダーは、 バッチ クライアント拡張プロジェクト でのみ必要です。
これらのファイルは、 batch/ フォルダー内の任意のフォルダー構造に配置できます。
プロジェクトの client-extension.yaml ファイルでバッチ拡張機能を定義しなかった場合、Liferay はこれらのファイルを無視します。
*.client-extension-config.json
各 LUFFA には、少なくとも 1 つの *.client-extension-config.json ファイルが必要です。
LUFFA のルートには、1 つ以上の *.client-extension-config.json (OSGi 構成リソースフォーマット) ファイルがあります。 これらは、クライアント拡張機能がアーカイブ内でどのように構造化されるかを定義します。 通常、これらのファイルは、 client-extension.yaml ファイルの内容に基づいてビルド プロセス中に生成されます。 YAML から JSON への変換は Liferay ワークスペース プラグインによって指定されており、1:1 のマッピングではありません。
Dockerfile
各 LUFFA には、少なくとも 1 つの Dockerfile が必要です。
ビルドプロセスは、バッチ、設定、フロントエンドクライアント拡張用のDockerfileを自動的に生成し、パッケージ化する。
を提供する必要があります。 Dockerファイルを用意する必要があります。 プロジェクトのルートディレクトリに追加すれば、プロジェクトをビルドする際にLUFFAにコピーされます。
Dockerfile がプロジェクト内のマイクロサービス クライアント拡張機能を実行できることを確認してください。 例えば、 Dockerfile では、マイクロサービスのコードが必要とする特定のツールをインストールする必要がある場合があります。
環境変数など、他の方法でDockerコンテナを設定することもできます。 例えば、コンテナの JVM (クラウド環境で実行されるクライアント拡張機能に必要な場合があります) を LIFERAY_JAR_RUNNER_JAVA_OPTS 変数で構成できます。
クライアント拡張機能を手動でパッケージ化する
LUFFA を自分でパッケージ化する場合、バッチ、構成、およびフロントエンド クライアント拡張機能には、特定の Dockerfile 規約が必要です。 Liferayは、以下の画像でそれらを提供しています。
バッチクライアント拡張機能には、 liferay/batch:latest イメージを使用してください。
FROM liferay/batch:latest
COPY /batch /batch
設定クライアント拡張機能には、 liferay/noop:latest イメージを使用してください。
FROM liferay/noop:latest
フロントエンドクライアント拡張機能には、 liferay/caddy:latest イメージを使用してください。
FROM liferay/caddy:latest
COPY static/ /public_html/
マイクロサービス クライアント拡張機能の Dockerfile は、特定のコンテキストに完全に依存するため、事前構成済みのイメージを提供することはできません。
LCP.json
各 LUFFA には LCP.json ファイルが必要です。
ビルドプロセスは、バッチ、設定、フロントエンドクライアント拡張用のLCP.jsonを自動的に生成し、パッケージ化する。
を提供する必要があります。 LCP.jsonファイルを用意する必要があります。 プロジェクトのルートディレクトリに追加すれば、プロジェクトがビルドされる際にLUFFAにコピーされます。 この LCP.json ファイルは、マイクロサービスが Liferay Cloud にデプロイされるときに使用されるコンテナを設定します。
LUFFAを自分でパッケージ化する場合、各クライアント拡張機能には、 LCP.json の異なる仕様の提案が付属しています。
| クライアント拡張 | 相当な資源が必要 | 親切 | メモ |
|---|---|---|---|
| バッチ | ✘ | 仕事 |
|
| 設定 | ✘ | 仕事 |
|
| フロントエンド | ✘ | デプロイ |
|
バッチクライアント拡張機能の例 LCP.json
{
"cpu": 0.2,
"env": {
"LIFERAY_BATCH_OAUTH_APP_ERC": "__batch.oAuthApplicationHeadlessServer__"
},
"id": "__CLIENT_EXTENSION_ID__",
"kind": "Job",
"memory": 50,
"scale": 1
}
設定例 クライアント拡張機能 LCP.json
{
"cpu": 0.1,
"id": "__CLIENT_EXTENSION_ID__",
"kind": "Job",
"memory": 10,
"scale": 1
}
フロントエンドクライアント拡張機能の例 LCP.json
{
"cpu": 0.2,
"id": "__CLIENT_EXTENSION_ID__",
"kind": "Deployment",
"livenessProbe": {
"httpGet": {
"path": "/",
"port": 80
}
},
"loadBalancer": {
"cdn": true,
"targetPort": 80
},
"memory": 50,
"readinessProbe": {
"httpGet": {
"path": "/",
"port": 80
}
},
"scale": 1
}
詳細については、 LCP.json による設定 を参照してください。
static
静的 ディレクトリは、 フロントエンド クライアント拡張プロジェクト でのみ必要です。
ビルドされた LUFFA のルート レベルの static/ ディレクトリに、任意の数の静的リソース ファイルを配置できます。 static/ フォルダ内には、お好きなフォルダ構造を使用してください。 プロジェクトの client-extension.yaml ファイルにフロントエンド クライアント拡張機能が定義されていない場合、これらのファイルは無視されます。
マイクロサービスリソース
マイクロサービスクライアント拡張プロジェクト用に構築されたLUFFAには、他の必須ファイルと競合しない限り、追加のリソースを含めることができます。