フラグメントの自動デプロイ
Liferay Portal 7.3 GA1+ または Liferay DXP 7.3+
独自のツールを使用してページフラグメントを開発している場合、それらを ZIP ファイルにパッケージ化し、Liferay UI 経由でインポートすることでデプロイできます。 ただし、UI の使用に限定されません。 コマンドラインからフラグメントZIPファイルをデプロイすることも可能です。 Liferay の自動デプロイメント メカニズムを使用して、フラグメント プロジェクトを操作し、コマンド ラインから必要なサイトにフラグメントをインポートする方法を学びます。
Liferay DXP 7.4以降の場合、フラグメントコレクションはLiferay UIではフラグメントセットと呼ばれます。
自動デプロイ可能なフラグメントセットをデプロイする
新しいLiferay インスタンスを起動し、以下を実行します。
docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.132-ga132
http://localhost:8080でLiferayにサインインします。 メールアドレス test@liferay.com とパスワード testを使用してください。 プロンプトが表示されたら、パスワードを learnに変更します。
次に、次の手順に従って、サンプルのフラグメント セットを自動デプロイします。
-
サンプルの自動デプロイ可能なフラグメント セットをダウンロードして解凍します。
curl https://resources.learn.liferay.com/examples/liferay-a2f8.zip -Ounzip liferay-a2f8.zip -
フラグメントプロジェクトのセットとそのデプロイメント記述子をZIPファイルに圧縮します。
cd liferay-a2f8zip -r a2f8-fragments.zip a2f8-set/ liferay-deploy-fragments.json -
新しい
.zipファイルをLiferayのDockerコンテナ内の自動デプロイフォルダにコピーすることで、フラグメントセットを記述子で指定されたサイトにインポートします。docker cp a2f8-fragments.zip $(docker ps -lq):/opt/liferay/deploy -
Docker コンソールで次のログメッセージを確認します。
INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:263] Processing a2f8-fragments.zip -
フラグメントセットが利用可能であることを確認します。 サイト メニュー (
) を開き、 デザイン → フラグメントに移動します。 セットがリストに表示されます。
インポートされたフラグメントに無効なルールがある場合、ドラフトとして自動的に保存されます。

フラグメントプロジェクトのストラクチャー
自動デプロイ可能なフラグメントプロジェクトの構造は次のとおりです。
[project ZIP]
├── [fragment-set]
│ ├── collection.json
│ └── [fragment]
│ └── fragment files ...
└── liferay-deploy-fragments.json
liferay-deploy-fragments.json ファイルは、フラグメントをデプロイする範囲を指定します。
- システム全体 (すべてのインスタンス)
- 仮想インスタンス(会社)
- サイト (グループ)
以下のサンプルの構成では、仮想インスタンス(liferay.com)内の「Guest」というサイト(グループ)にデプロイするよう指定されています。
{
"companyWebId": "liferay.com",
"groupKey": "Guest"
}
このJSONファイルのキーはどちらもオプションです。 liferay-deploy-fragments.json ファイルで、空の JSON 要素を指定するか、次の構成を追加することで、フラグメントをシステム全体 (すべてのインスタンス) で使用できるようにすることができます。
{
"companyWebId": "*"
}
フラグメント ツールキットの npm run compress コマンド を使用すると、フラグメント ZIP ファイルとそのデプロイメント記述子の作成が容易になります。
フラグメントセットを変更して再デプロイする
-
プロジェクトの
a2f8-jumbotronフラグメントフォルダをa2f8-set/フォルダに移動して、サンプルのセットに新しいフラグメントを追加します。 -
前述のように、フラグメントセットを ZIP ファイルに圧縮します。
zip -r a2f8-fragments.zip a2f8-set/ liferay-deploy-fragments.json -
上記で行ったように、ZIP ファイルを Docker コンテナにコピーして、変更されたフラグメントセットをインポートします。
docker cp a2f8-fragments.zip $(docker ps -lq):/opt/liferay/deploy -
新しいフラグメントを確認します。 サイト メニュー (
) を開き、 デザイン → フラグメントに移動して、 A2F8 セットをクリックします。 A2F8ジャンボトロンフラグメントが含まれているはずです。
これで、ローカルでフラグメントセットを操作する方法、フラグメントセットにサイトを指定する方法、自動デプロイメントを使ってフラグメントセットをインポートする方法がわかりました。