Sitecore モジュールの追加

Version: 10.2
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このトピックでは、Sitecore モジュールの アセット イメージを紹介し、カスタム Sitecore Docker イメージを構築する際に、これらを使用して追加の Sitecore モジュールを含める方法について説明します。ここで使用する例では、Sitecore PowerShell Extensions (SPE)Sitecore Experience Accelerator (SXA) のモジュールを Sitecore Experience Platform - Single (XP0) インスタンスに追加します。

Docker Examples リポジトリのクローンの作成

Docker Examples リポジトリのクローンをまだ作成していない場合は、コンピューター上の C:\sitecore\docker-examples\ などの場所に作成します (例のクローン先は、このフォルダーになっています)。この例の custom-images フォルダーを使用します。

サンプルの準備

custom-images の例では、実行する前にいくつかの準備が必要です。まだ準備をしていない場合は、準備の手順に従うか、付属の init.ps1 スクリプトを実行して準備の手順を自動的に実行してください。

  • PowerShell 管理者プロンプトを開き、custom-imagesフォルダーに移動して、次のコマンドを実行し、-LicenseXmlPath を Sitecore ライセンス ファイルの場所に置き換えます。

    RequestResponse
    .\init.ps1 -LicenseXmlPath C:\License\license.xml

Sitecore モジュール アセット イメージの理解

Sitecore では、カスタム Sitecore イメージをビルドする際に Sitecore モジュールをインストールするために必要なファイルやスクリプトを含む、公式にサポートされたモジュールのアセット イメージを提供しています。ソリューションと同様に、これらのアセット イメージは、ビルド時のソースとして意図されており、ランタイムでは使用されません。

各トポロジの Sitecore モジュールには、1 つのアセット イメージが用意されています。利用可能なすべてのモジュールの一覧は、Sitecore モジュール リファレンスを参照してください。

xp0 イメージは存在しないことに注意してください。Sitecore Experience Platform - Single (XP0) インスタンスでは、xp1 イメージ (sitecore-sxa-xp1-assets など) を使用します。

イメージの構造

各モジュール アセット イメージには、次のファイル構造のリソースが含まれています。

  • C:\module\[role]\content - Sitecore のベース イメージをオーバーレイするコンテンツ

  • C:\module\db - モジュールに必要なデータベースへの変更を含む dacpac ファイル

  • C:\module\solr - モジュールに必要な Solr コアのデプロイに使用されるファイル

  • C:\module\tools - Docker イメージのビルド プロセス中に実行される追加のツールとスクリプト

アセット イメージをコンテナーとして実行することはありませんが、インタラクティブ シェルでイメージを実行すると、ファイル システムを調査できます。方法については、「Sitecore Docker クイック ガイド」を参照してください。

特定の Sitecore モジュールをインストールするには、これらのリソースを使用して、必要な Dockerfile 命令を Sitecore ランタイム Dockerfile に追加することにより、カスタム イメージのビルド プロセス中にファイル、データベース、インデックスの変更をベースの Sitecore ランタイム イメージにデプロイします。

Sitecore ランタイム イメージへの適用

次の例は、Sitecore PowerShell Extensions (SPE) と Sitecore Experience Accelerator (SXA) モジュールを Sitecore Experience Platform - Single (XP0) トポロジに追加するための設定を示しています。

Dockerfile 命令の追加

各ロールに Dockerfile 命令を追加するには:

  • Content Management (CM) ロール

    cm サービスの Sitecore ランタイム Dockerfile (C:\sitecore\docker-examples\custom-images\docker\build\cm\Dockerfile など) を開きます。SPE と SXA のモジュール アセット イメージは、最初に ARG (Docker Compose で設定) で取り込まれ、次に後で使用される名前付きビルド ステージ spe および sxa として起動されているのがわかります。

    RequestResponse
    ARG SXA_IMAGE
    ARG SPE_IMAGE
    [...]
    FROM ${SPE_IMAGE} as spe
    FROM ${SXA_IMAGE} as sxa

    これで、SPE と SXA の両方に必要な cm Dockerfile 命令が、WORKDIR 命令の直後に追加されます。

    RequestResponse
    COPY --from=spe \module\cm\content .\
    
    COPY --from=sxa \module\cm\content .\
    COPY --from=sxa \module\tools \module\tools
    RUN C:\module\tools\Initialize-Content.ps1 -TargetPath .\; `
        Remove-Item -Path C:\module -Recurse -Force;

    COPY の命令が次のように調整されていることに注目してください。

    • コピー元の --from には、spe および sxa の実際の名前付きビルド ステージを使用します。

    • 直前の WORKDIR で作業ディレクトリを C:\inetpub\wwwroot に設定しているので、コピー先には相対パスの .\ を使用します。

    ヒント

    キャッシュを最適化するには、ソリューションの命令の前にモジュールの命令を追加します。Dockerfile のベスト プラクティスに従い、ビルド ステップの順序を変更が最も少ないものから最も多いものへとします。

  • Microsoft SQL Server (mssql-init) ロール

    次に、mssql-init サービスの Sitecore ランタイム Dockerfile (C:\sitecore\docker-examples\custom-images\docker\build\mssql-init\Dockerfile など) を開きます。同じ ARG およびビルド ステージを宣言し、必要な mssql-init Dockerfile 命令を SPE と SXA の両方に追加します。

    RequestResponse
    COPY --from=spe \module\db \spe_data
    
  • Apache Solr Init (solr-) ロール

    最後に、solr-init サービスの Sitecore ランタイム Dockerfile (C:\sitecore\docker-examples\custom-images\docker\build\solr-init\Dockerfile など) を開きます。同じ ARG およびビルド ステージを宣言し、必要な solr-init Dockerfile 命令を追加します。この場合は SXA のみに追加します。

    RequestResponse
    COPY --from=sxa C:\module\solr\cores-sxa.json C:\data\cores-sxa.json
    
    注記

    SXA モジュールは、XP1 および XM1 のトポロジで使用するために、cd Sitecore ランタイム Dockerfile (C:\sitecore\docker-examples\custom-images\docker\build\cd\Dockerfile など) にも含まれています。

Docker Compose での設定

これを Docker Composeで設定する方法を確認するには:

  • custom-images フォルダーのルートにある docker-compose.override.yml ファイル (C:\sitecore\docker-examples\custom-images\docker-compose.override.yml など) を開きます。cm サービスは次のように設定されています。

    RequestResponse
    cm:
      image: ${REGISTRY}${COMPOSE_PROJECT_NAME}-xp0-cm:${VERSION:-latest}
      build:
        context: ./docker/build/cm
        args:
          BASE_IMAGE: ${SITECORE_DOCKER_REGISTRY}sitecore-xp0-cm:${SITECORE_VERSION}
          SPE_IMAGE: ${SITECORE_MODULE_REGISTRY}sitecore-spe-assets:${SPE_VERSION}
          SXA_IMAGE: ${SITECORE_MODULE_REGISTRY}sitecore-sxa-xp1-assets:${SXA_VERSION}
          TOOLING_IMAGE: ${SITECORE_TOOLS_REGISTRY}sitecore-docker-tools-assets:${TOOLS_VERSION}
          SOLUTION_IMAGE: ${REGISTRY}${COMPOSE_PROJECT_NAME}-solution:${VERSION:-latest}
      [...]

SPE_IMAGESXA_IMAGE の値は、Sitecore モジュール リファレンスに従って各モジュールで Docker イメージ リポジトリを使用するように設定されています。xp0 イメージは存在しないため、SXA は sitecore-sxa-xp1-assets を使用します。

特定のモジュールのイメージ タグやバージョンは、専用のSPE_VERSION 変数と SXA_VERSION 変数で定義されます。これらは、環境ファイル (.env) に定義されています。

残りのサービス (mssql-initsolr-init) も同様の方法で設定されています。

Docker Examples の実行

Docker Examples を実行するには:

  1. PowerShell プロンプトを開き、custom-images フォルダー (C:\sitecore\docker-examples\custom-images など) に移動して、Docker Compose の up コマンドを使用して Docker サンプルを実行します。

    RequestResponse
    docker-compose up -d
  2. インスタンスが起動したら、https://cm.dockerexamples.localhost/sitecore を参照して、Sitecore にログインします。ユーザー名に admin を使用し、パスワードには .env ファイルで SITECORE_ADMIN_PASSWORD に指定した値 (init.ps1 のデフォルトでは Password12345) を使用します。

  3. Sitecore PowerShell Extensions (SPE) と Sitecore Experience Accelerator (SXA) に慣れている場合は、モジュールがインストールされていることがすぐにわかります。

    慣れていない場合でも、スタート画面に [PowerShell ISE] と [PowerShell Repots] というボタンが追加されているのがわかります。これらは Sitecore PowerShell Extensions (SPE) によって追加されたものです。

    PowerShell icons in Sitecore-
  4. コンテンツ エディターを開きます。ルートの [コンテンツ] フォルダーの [テナント] に挿入オプションがあります。これらは、Sitecore Experience Accelerator (SXA) によって追加されています。

    Tenant insert option in the Content Editor.
  5. 終了したら、down コマンドを使用してコンテナーを停止して削除します。

    RequestResponse
    docker-compose down

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、