Sitecore モジュールの追加
このページの翻訳は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
として起動されているのがわかります。RequestResponseARG SXA_IMAGE ARG SPE_IMAGE [...] FROM ${SPE_IMAGE} as spe FROM ${SXA_IMAGE} as sxa
これで、SPE と SXA の両方に必要な cm Dockerfile 命令が、
WORKDIR
命令の直後に追加されます。RequestResponseCOPY --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 の両方に追加します。RequestResponseCOPY --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 のみに追加します。RequestResponseCOPY --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
サービスは次のように設定されています。RequestResponsecm: 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_IMAGE
と SXA_IMAGE
の値は、Sitecore モジュール リファレンスに従って各モジュールで Docker イメージ リポジトリを使用するように設定されています。xp0 イメージは存在しないため、SXA は sitecore-sxa-xp1-assets を使用します。
特定のモジュールのイメージ タグやバージョンは、専用のSPE_VERSION
変数と SXA_VERSION
変数で定義されます。これらは、環境ファイル (.env
) に定義されています。
残りのサービス (mssql-init
と solr-init
) も同様の方法で設定されています。
Docker Examples の実行
Docker Examples を実行するには:
-
PowerShell プロンプトを開き、custom-images フォルダー (
C:\sitecore\docker-examples\custom-images
など) に移動して、Docker Compose のup
コマンドを使用して Docker サンプルを実行します。RequestResponsedocker-compose up -d
-
インスタンスが起動したら、https://cm.dockerexamples.localhost/sitecore を参照して、Sitecore にログインします。ユーザー名に admin を使用し、パスワードには
.env
ファイルでSITECORE_ADMIN_PASSWORD
に指定した値 (init.ps1
のデフォルトでは Password12345) を使用します。 -
Sitecore PowerShell Extensions (SPE) と Sitecore Experience Accelerator (SXA) に慣れている場合は、モジュールがインストールされていることがすぐにわかります。
慣れていない場合でも、スタート画面に [PowerShell ISE] と [PowerShell Repots] というボタンが追加されているのがわかります。これらは Sitecore PowerShell Extensions (SPE) によって追加されたものです。
-
コンテンツ エディターを開きます。ルートの [コンテンツ] フォルダーの [テナント] に挿入オプションがあります。これらは、Sitecore Experience Accelerator (SXA) によって追加されています。
-
終了したら、
down
コマンドを使用してコンテナーを停止して削除します。RequestResponsedocker-compose down