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.29-ga29。

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

Then, follow these steps to auto-deploy an example Fragment Set:

  1. Download and unzip the 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コンテナ内の自動デプロイフォルダにコピーすることで、フラグメントセットを記述子で指定されたサイトにインポートします。

    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 command を使用すると、フラグメント ZIP ファイルとそのデプロイメント記述子の作成が容易になります。

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

フラグメントセットを変更して再デプロイするには、次の手順に従います。

  1. プロジェクトの a2f8-jumbotron フラグメントフォルダを 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ジャンボトロンフラグメントが含まれているはずです。

    新しいフラグメントは、自動デプロイされたセットに含まれます。

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