Liferayサービスへのデプロイ
他のサービスと同様に、カスタム追加のデプロイには、設定やファイルをGitリポジトリの適切な場所に追加する必要があります。 しかし、Liferayサービスのデプロイは、他のサービスのデプロイとは若干異なります。
Liferayサービスは、 Liferay Workspaceの概要 を利用し、 配置可能なファイル 、 ソースコード などを追加するオプションを提供します。 これらは CI ビルドに簡単に含まれますが、 CLI ツールを使っている場合は、Liferay サービス専用の 追加ステップ がいくつか必要です。
Liferay DXP Dockerイメージの定義
Liferayサービスイメージ(他のサービスと同様に LCP.json
ファイルで定義されています)は、Liferay DXP Dockerイメージと同じではありません。 Liferay DXP Dockerイメージは、Liferayサービスで動作するLiferayの正確なバージョン(フィックスパックを含む)を決めます。 これは、liferay.workspace.docker.image.liferay
プロパティと一緒にリポジトリの liferay/gradle.properties
ファイルで定義されています。
Liferay DXP Docker tags をチェックして、お使いのDXPのバージョンに合ったイメージを見つけてください。
Liferayサービスの「LCP.json」ファイルの「image」プロパティで定義されたDXPのメジャーバージョン番号は、「liferay/gradle.properties」の「liferay.workspace.docker.image.liferay」プロパティのメジャーバージョンと一致していなければなりません。 2つが異なる場合、Liferayサービスはデプロイ後に起動に失敗する可能性があります。
CLIツールの展開
CLIツール を使用してデプロイする場合、カスタマイズや設定を考慮してデプロイするために追加の手順が必要です。 これらは、デプロイする前に生成される特別な Dockerfile
イメージに含まれている必要があります。
デプロイ可能なファイル 、 ビルドされたソースコード 、 ホットフィックス 、および ライセンス は、CLIツールを使用している場合、デプロイに含めるための追加手順が必要です。 これらの追加手順は、 CIサービス を使用してリポジトリからビルドを生成する場合には必要ありません。
Liferay サービスを CLI で普通にデプロイした場合(すべてのサービスを一度にデプロイする場合、または liferay/
ディレクトリから)、 デフォルトバージョン の Liferay DXP イメージ( LCP.json
で定義したメジャーバージョンを使用)が、あなたのカスタマイズを含まない状態でデプロイされることになります。 これは、カスタマイゼーションしたものをサービスに含めるためには、そのサービスを具体的に構築してデプロイする必要があるからです。
以下の手順で、カスタマイゼーションを含んだLiferayサービスをデプロイします:
liferay/
ディレクトリのコマンドラインから、以下を実行します:gw 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
というメッセージを探し、ファイルが上書きされたことを特定します。
リポジトリでバージョン 3.x.x のサービスを使用している場合、テーマ、ポートレット、OSGi モジュールは、代わりに適切な 「lcp/liferay/deploy/」フォルダに属します。 バージョン確認の詳細については、 サービススタックのバージョンについて を参照してください。
ソースコードのビルドとデプロイ
新しい追加のソースコードをCIビルドに含めることもできます。 ビルドが開始されると、ソースコードが自動的にコンパイルされます。
CIビルドは、これらのフォルダー内のソースコードをコンパイルします:
- 新モジュール用の
liferay/modules
フォルダ - カスタムテーマ用の
liferay/themes
フォルダ - デプロイされたWARの
liferay/wars
フォルダ
バージョン3.x.xのサービスを使用している場合、これらのサブフォルダは、「liferay/」ディレクトリにではなく、リポジトリのルートに配置されます。 バージョン確認の詳細については、 サービススタックのバージョンについて を参照してください。
デプロイしたら、デプロイ可能な .jar
または .war
ファイルはLiferayサービスのコンテナ内の$LIFERAY_HOME/デプロイ/
フォルダにコピーされます。 これは、CIのビルドがコードをコンパイルする場合と、デプロイ前に利用可能な Gradleコマンド を使用して自分でコードを生成する場合のどちらでも発生します。
Hotfixのデプロイについて
Hotfixを適用するには、Liferay DXPサービスディレクトリ内の configs/{ENV}/patching/
フォルダにHotfix ZIPファイルを追加してください。 この変更を展開すると、ホットフィックスがLiferay DXPインスタンスに適用されます。
これらの指示を参照して、代わりにLiferay DXPの新しいマイナーバージョンにアップデートしてください(新しい パッチタイプについて など)。
たとえば、次のような構造を持つホットフィックスを開発環境にデプロイできます:
liferay
├── LCP.json
└── configs
└── dev
├── deploy
├── osgi
├── patching
│ └── liferay-hotfix-2-7110.zip
└── scripts
なお、Hotfixはサーバーを起動するたびに再適用する必要があります。 このため、 LCP.json
ファイルにある Liferay DXP Docker イメージの最新の Fix Pack または Service Pack に更新する方が、長期的にはこのフォルダにホットフィックスを追加するより良いでしょう。このファイルの image
環境変数を置き換えることでDockerバージョンを更新できます ( liferay/
ディレクトリにあります) 。
バージョン3.x.xのサービスを使用している場合は、代わりにホットフィックスが「lcp/liferay/hotfix/」フォルダに追加されます。 この場合のDockerイメージのバージョンは、リポジトリの 「gradle.properties」ファイルにある 「liferay.workspace.lcp.liferay.image」プロパティで定義されます。 バージョン確認の詳細については、 サービススタックのバージョンについて を参照してください。
環境変数によるパッチ適用
ホットフィックスをGitリポジトリに直接コミットするのではなく、CIのビルドプロセスの一部としてインストールすることもできます。 この方法は、リポジトリに大きなファイルを残さないようにすることができるため、大規模なHotfixの場合に最適です。
LCP_CI_LIFERAY_DXP_HOTFIXES_{ENV}
環境変数(Liferay Cloud コンソールの 環境変数
タブ、または ci
サービスの LCP.json
ファイル)にカンマ区切りで Hotfix のリストを追加し、CI サービスが構築プロセス中に自動的にそれを適用できるようにします。
この環境変数を「ci」サービスの「LCP.json」に追加した場合、アップデートを完了するには、「ci」サービスを infra 環境 にデプロイする必要があります。
次の例では、 LCP.json
ファイルに通してホットフィックスを定義しています:
"env": {
"LCP_CI_LIFERAY_DXP_HOTFIXES_COMMON": "liferay-hotfix-10-7210,liferay-hotfix-17-7210",
"LCP_CI_LIFERAY_DXP_HOTFIXES_DEV": "liferay-hotfix-15-7210,liferay-hotfix-33-7210",
}
この環境変数は、少なくともバージョン4.x.xのサービスにアップグレードしている場合にのみ利用できます。 バージョンの確認方法については, サービススタックのバージョンについて を参照してください。
ライセンスのデプロイ
独自のライセンスは、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
コピーされます。
バージョン3.x.xのサービスを使用している場合、ライセンスはリポジトリの「lcp/liferay/license//」フォルダに置かれます。 バージョンの確認方法については, サービススタックのバージョンについて を参照してください。