Documentation

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

利用可能な 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_に変更します。

次に、以下の手順に従って、サンプルのフラグメントセットを自動デプロイします。

  1. 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
    
  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) を開き、 [デザイン] → [フラグメント] に移動します。 セットがリストに表示されるはずです。

注釈

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

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

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

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

[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 ファイルとその配備記述子の作成を容易にします。

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

以下の手順でフラグメントセットを修正し、再展開します。

  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ジャンボトロンの断片が含まれているはずです。

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

フラグメントセットをローカルで操作する方法、フラグメントセットのサイトを指定する方法、自動配置を使用してインポートする方法はお分かりいただけたと思います。

追加情報