フラグメントの自動デプロイ
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.112-ga112。
http://localhost:8080でLiferayへのサインインします。 メールアドレス test@liferay.com とパスワード test を使用してください。 プロンプトが表示されたら、パスワードを learn に変更します。
次に、以下の手順に従って、サンプルのフラグメントセットを自動デプロイします:
-
サンプル自動展開可能フラグメントセット をダウンロードし、解凍します:
curl https://resources.learn.liferay.com/dxp/latest/en/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
フラグメントフォルダを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ジャンボトロンフラグメントが含まれているはずです。
これで、ローカルでフラグメントセットを操作する方法、フラグメントセットにサイトを指定する方法、自動デプロイメントを使ってフラグメントセットをインポートする方法がわかりました。