フラグメントの自動デプロイ

フラグメントの自動デプロイ

利用可能 Liferay Portal 7.3 GA1+ または Liferay DXP 7.3+

独自のツールでページフラグメントを開発している場合 、Liferay UIでインポートするためにZIPファイルにパッケージすることでデプロイすることができます。 ただし、UI の使用に限定されません。 コマンドラインからフラグメントZIPファイルを展開することも可能です。 ここでは、フラグメントプロジェクトを扱う方法と、Liferayの自動展開の仕組みを使ってコマンドラインから好きなサイトにフラグメントをインポートする方法を学びます。

note

Liferay DXP 7.4+では、フラグメントコレクションはLiferay UIではフラグメントセットと呼ばれています。

自動デプロイ可能なフラグメントセットをデプロイする

新しいLiferay インスタンスを起動し、以下を実行します。

docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.75-ga75。

http://localhost:8080でLiferayへのサインインします。 メールアドレス[email protected]_とパスワード_test_を使用してください。 プロンプトが表示されたら、パスワードを _learn_に変更します。

次に、以下の手順に従って、例のフラグメントセットを自動配備します。

  1. 自動展開可能なフラグメントセットの例 をダウンロードし、解凍する。

    curl https://resources.learn.liferay.com/dxp/latest/en/site-building/developer-guide/developing-page-fragments/liferay-a2f8.zip -O
    
    unzip liferay-a2f8.zip
    
  2. フラグメントプロジェクトのセットとそのデプロイメントディスクリプターをZIPファイルに圧縮する。

    cd liferay-a2f8
    
    zip -r  a2f8-fragments.zip a2f8-set/ liferay-deploy-fragments.json
    
  3. 新しい .zip ファイルを Liferay の Docker コンテナの auto-deploy フォルダにコピーして、フラグメントセットを記述子指定のサイトにインポートします。

    docker cp a2f8-fragments.zip $(docker ps -lq):/opt/liferay/deploy
    
  4. Docker コンソールで次のログメッセージを確認します。

    INFO  [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:263] Processing a2f8-fragments.zip
    
  5. フラグメントセットが利用可能であることを確認します。 サイトメニュー(Site Menu) を開き、 [デザイン] → [フラグメント] に移動します。 セットがリストに表示されるはずです。

note

インポートしたフラグメントに無効なルールがある場合、自動的にドラフトとして保存されます。

セットでご利用いただけます。

フラグメントプロジェクトのストラクチャー

自動展開可能なフラグメントプロジェクトは、このような構造になっています。

[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": "*"
}
warning

フラグメントリソース付きをシステムレベルで利用可能にする場合、インポートはサポートされていません。

note

フラグメントツールキットの npm run compress コマンド は、フラグメント ZIP ファイルとその配置記述子の作成を容易にします。

フラグメントセットを変更して再デプロイする

以下の手順で、フラグメントセットを修正し、再展開してください。

  1. プロジェクトの a2f8-jumbotron fragment フォルダーを a2f8-set/ フォルダーに移動して、サンプルセットに新しいフラグメントを追加します。

  2. 上記と同様に、フラグメントセットをZIPファイルに圧縮する。

    zip -r  a2f8-fragments.zip a2f8-set/ liferay-deploy-fragments.json
    
  3. 前回と同様にZIPファイルをDockerコンテナにコピーして、修正したフラグメントセットをインポートします。

    docker cp a2f8-fragments.zip $(docker ps -lq):/opt/liferay/deploy
    
  4. 新しいフラグメントの有無を確認する。 [サイトメニュー](Site Menu) を開き、 [デザイン] → [フラグメント] に移動し、 [A2F8セット] をクリックします。 A2F8ジャンボトロンの断片が含まれているはずです。

    新しいフラグメントは、自動展開されたSetに含まれます。

これで、フラグメントセットをローカルで操作する方法、フラグメントセットのサイトを指定する方法、自動配置を使用してインポートする方法がわかりました。

追加情報