Liferayサービスへのデプロイ
他のサービスと同様に、カスタム追加のデプロイには、設定やファイルをGitリポジトリの適切な場所に追加する必要があります。 しかし、Liferayサービスのデプロイは、他のサービスのデプロイとは若干異なります。
Liferay サービスは、 Liferay ワークスペース を使用して、 デプロイ可能なファイルや ソース コードなどを追加するためのオプションを提供します。 これらは CI ビルドで簡単に組み込まれますが、 CLI ツールを使用している場合は、Liferay サービス専用の 追加手順 が必要になります。
Liferay DXP Dockerイメージの定義
Liferayサービスイメージ(他のサービスと同様に LCP.json ファイルで定義されています)は、Liferay DXP Dockerイメージと同じではありません。 Liferay DXP Dockerイメージは、Liferayサービスで動作するLiferayの正確なバージョン(フィックスパックを含む)を決めます。 これは、リポジトリの liferay/gradle.properties ファイルで、 liferay.workspace.docker.image.liferay プロパティを使用して定義されています。
Liferay DXP Docker タグ をチェックして、DXP のバージョンに適したイメージを見つけてください。
LiferayサービスのLCP.jsonファイルのimageプロパティで定義されたDXPのメジャーバージョン番号は、liferay/gradle.propertiesのliferay.workspace.docker.image.liferayプロパティのメジャーバージョンに一致していなければなりません。 2つが異なる場合、Liferayサービスはデプロイ後に起動に失敗する可能性があります。
CLIツールの展開
デプロイ可能なファイル、 ビルドされたソース コード、 ホットフィックス、および ライセンス を CLI ツールを使用して追加するには、デプロイ前に生成される特別な Dockerfile イメージにそれらを含める必要があります。 CI サービス経由でビルドをデプロイする場合、これらの追加手順は必要ありません。
通常通りCLIを使用してLiferayサービスをデプロイする場合(すべてのサービスを一度にデプロイする場合、または liferay/ ディレクトリから)、カスタマイズが含まれていないLiferay DXPイメージの デフォルトバージョン ( LCP.jsonで定義されているメジャーバージョンを使用)がデプロイされます。 これは、カスタマイゼーションしたものをサービスに含めるためには、そのサービスを具体的に構築してデプロイする必要があるからです。
以下の手順で、カスタマイゼーションを含んだLiferayサービスをデプロイします:
-
liferay/ディレクトリのコマンドラインから、以下を実行します:./gradlew clean createDockerfile deployこれにより、カスタマイズしたものをすべてビルドし、
build/liferay/サブフォルダに配置します。 また、DXPのカスタマイズバージョン専用のDockerfileを追加します。 -
新しく生成した
build/docker/サブフォルダにLCP.jsonファイルをコピーします。 -
このサブフォルダから通常通り
lcp deployコマンドを実行します。
これにより、デフォルトバージョンではなく、カスタマイズされたサービスがデプロイされます。
テーマ、ポートレット、およびOSGiモジュールのデプロイ
テーマ、ポートレット、または OSGi モジュールをインストールするには、Liferay DXP サービスディレクトリの configs/[ENV]/deploy/ フォルダに WAR または JAR ファイルを含めます。
例えば、カスタムJARファイルを開発環境( dev/ 環境フォルダを使用)にデプロイする場合、Liferay DXPのサービスディレクトリは以下のようになります:
liferay
├── LCP.json
└── configs
└── dev
├── deploy
│ └── com.liferay.apio.samples.portlet-1.0.0.jar
├── osgi
├── patching
├── scripts
└── portal-ext.properties
デプロイされると、 configs/[ENV]/deploy/ ディレクトリ内のすべてのファイルが、Liferay サービスコンテナ内の $LIFERAY_HOME/deploy/ フォルダにコピーされます。
イメージのデプロイ時には、特定のファイルや設定が強制的に存在するため、追加したファイルが上書きされることがあります。 ファイルが上書きされた時期を特定するには、サービスのログでメッセージ DXPCloud Liferay Overrides を探します。
ソースコードのビルドとデプロイ
新しい追加のソースコードをCIビルドに含めることもできます。 ビルドが開始されると、ソースコードが自動的にコンパイルされます。
CI ビルドは、次のフォルダー内のソース コードをコンパイルします。
- 新モジュール用の
liferay/modulesフォルダ - カスタムテーマ用の
liferay/themesフォルダ - デプロイされたWARの
liferay/warsフォルダ
デプロイされると、デプロイ可能な .jar または .war ファイルが、Liferay サービスコンテナ内の $LIFERAY_HOME/deploy/ フォルダにコピーされます。 これは、CIのビルドがコードをコンパイルする場合と、デプロイ前に利用可能な Gradleコマンド を使用して自分でコードを生成する場合のどちらでも発生します。
パッチ適用ツールのインストールと更新
Liferay DXP には、ホットフィックスを適用するためのパッチツールが付属しています。 新しいパッチ適用ツール バージョンのリリース後に修正プログラムがビルドされた場合は、更新されたバージョンをインストールする必要があります。
-
必要な パッチ適用ツール バージョン (
.zipファイル) をダウンロードします。 -
ファイルをLiferay Cloudプロジェクトの
/liferay/configs/common/patchingフォルダに移動します。
次回のデプロイメントでは、パッチ適用ツールが新しいバージョンに更新されます。
Hotfixのデプロイについて
ホットフィックスを適用するには、Liferay DXP サービスディレクトリ内の configs/[ENV]/patching/ フォルダにホットフィックスの ZIP ファイルを追加します。 この変更を展開すると、ホットフィックスがLiferay DXPインスタンスに適用されます。
代わりにLiferay DXPの新しいマイナーバージョン(新しい サービスパックなど)に更新するには、 DXPインスタンスを新しいマイナーバージョンに更新する を参照してください。
たとえば、次のような構造で開発環境に修正プログラムを展開できます。
liferay
├── LCP.json
└── configs
└── dev
├── deploy
├── osgi
├── patching
│ └── liferay-hotfix-2-7110.zip
└── scripts
なお、ホットフィックスはサーバーを起動するたびに再適用する必要があります。 このため、このフォルダに長期的にホットフィックスを追加するよりも、 gradle.properties ファイル内の Liferay DXP Docker イメージの最新の Fix Pack または Service Pack に更新する方が適切です。このファイル( liferay/ ディレクトリ内)の liferay.workspace.docker.image.liferay プロパティを更新することで、Docker バージョンを更新できます。
環境変数によるパッチ適用
ホットフィックスをGitリポジトリに直接コミットするのではなく、CIのビルドプロセスの一部としてインストールすることもできます。 この方法は、リポジトリに大きなファイルを残さないようにできるため、大規模なホットフィックスの場合に最適です。
ビルドプロセス中にCIサービスが自動的に適用するように、 LCP_CI_LIFERAY_DXP_HOTFIXES_[ENV] 環境変数に修正プログラムを追加します(Liferay Cloudコンソールの 環境変数 タブ、または ci services LCP.json ファイルから)。 複数のバグ修正が必要な場合は、サポートにそれらを 1 つの修正プログラムにパッケージ化するよう依頼してください。
この環境変数を LCP.json の ci サービスに追加する場合、更新を完了するには ci サービスを インフラ環境 にデプロイする必要があります。
LCP.json ファイルでホットフィックスを定義する次の例を参照してください。
"env": {
"LCP_CI_LIFERAY_DXP_HOTFIXES_COMMON": "liferay-hotfix-17-7210",
"LCP_CI_LIFERAY_DXP_HOTFIXES_DEV": "liferay-hotfix-33-7210"
}
ライセンスのデプロイ
Liferay DXP サービスディレクトリ内の configs/[ENV]/deploy/ フォルダに独自のライセンスを配置することで、ライセンスを追加できます。
例えば、Liferay DXPサービスディレクトリに次のような構造でライセンスを開発環境に追加できます:
liferay
├── LCP.json
└── configs
└── dev
├── deploy
│ ├── license.xml
│ └── license.aatf
├── osgi
├── patching
└── scripts
バックグラウンドで、XMLライセンスは $LIFERAY_HOME/ deployにコピーされ、AATFライセンスは $LIFERAY_HOME/ dataコピーされます。
Liferay Cloud はライセンスを自動的に更新するため、別途通知がない限り、ライセンス有効期限の警告を受け取った後にアクションを実行する必要はありません。