1. カスタムSitecoreイメージの作成

Sitecoreモジュールを追加する

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

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

このトピックでは、Sitecoreモジュールのasset imagesを紹介し、カスタムSitecore Dockerイメージをビルドするときにこれらを使用して追加のSitecoreモジュールを含める方法について説明します。ここで使用する例では、サイトコア PowerShell拡張機能 (SPE) そして サイトコア エクスペリエンス アクセラレーター (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ライセンス ファイルの場所に置き換えます。

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

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

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

各トポロジの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命令を追加するには、次のようにします。

  • コンテンツ管理 (CM) の役割

    cmサービスのSitecoreランタイムDockerfileを開きます (例: C:\sitecore\docker-examples\custom-images\docker\build\cm\Dockerfile)。SPEとSXAのモジュール アセット イメージは、最初にARGs (Docker Composeで設定) を使用して取り込まれ、その後、後で使用する名前付きビルド ステージspesxaとして開始されます。

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

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

    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の指示が次のように調整されていることに注意してください。

    • ソースには、spesxaの実際の名前付きビルド ステージを使用します --from

    • 宛先には相対パス .\ を使用します。これは、前のWORKDIRで作業ディレクトリが C:\inetpub\wwwroot

    先端

    キャッシュを最適化するには、least to most frequently changingからの手順を順序付けるDockerfileのベスト プラクティスに従って、モジュールの命令before任意のソリューション命令を追加します。

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

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

    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のみ)。

    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サービスは次のように構成されます。

    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の例を実行する

Dockerサンプルを実行するには、次のようにします。

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

    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) に精通している場合は、モジュールがインストールされていることがすぐにわかります。

    なじみがない場合は、Launchpadに追加のボタン( PowerShell ISEボタンとPowerShell Reportsボタン)があります。これらは、Sitecore PowerShell Extensions (SPE) によって追加されます。

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

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

    docker-compose down
この記事を改善するための提案がある場合は、 お知らせください!