フラグメントの自動デプロイ¶
利用可能な Liferay Portal 7.3 GA1+ または Liferay DXP 7.3+
もしあなたが 独自のツールでページフラグメントを開発しているなら、 、Liferay UI経由でインポートするためにそれらをZIPファイルにパッケージすることでデプロイすることができます。 ただし、UI の使用に限定されません。 コマンドラインからフラグメントZIPファイルをデプロイすることも可能です。 ここでは、フラグメントプロジェクトを扱う方法と、Liferayの自動デプロイメント機構を使ってコマンドラインから好きなサイトにフラグメントをインポートする方法を学びます。
注釈
Liferay DXP 7.4+ では、フラグメントコレクションは Liferay UI ではフラグメントセットと呼ばれます。
自動デプロイ可能なフラグメントセットをデプロイする¶
新しいLiferay インスタンスを起動し、以下を実行します。
docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.55-ga55。
http://localhost:8080でLiferayへのサインインします。 メールアドレス_test@liferay.com_とパスワード_test_を使用してください。 プロンプトが表示されたら、パスワードを _learn_に変更します。
次に、以下の手順に従って、サンプルのフラグメントセットを自動デプロイします。
Example auto-deployable fragment set をダウンロードし、解凍する。
curl https://learn.liferay.com/dxp/latest/ja/site-building/developer-guide/developing-page-fragments/liferay-a2f8.zip -O
unzip liferay-a2f8.zip
フラグメントプロジェクトのセットとそのデプロイメントディスクリプタをZIPファイルに圧縮します。
cd liferay-a2f8
zip -r a2f8-fragments.zip a2f8-set/ liferay-deploy-fragments.json
新しい
.zip
ファイルを Liferay の Docker コンテナの auto-deploy フォルダにコピーして、フラグメントセットをディスクリプタで指定したサイトにインポートします。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
fragment フォルダーを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ジャンボトロンの断片が含まれているはずです。
フラグメントセットをローカルで操作する方法、フラグメントセットのサイトを指定する方法、自動配置を使用してインポートする方法はお分かりいただけたと思います。