---
title: "Sitecoreモジュールの追加"
slug: "add-sitecore-modules"
abstract: "カスタムSitecore Docker画像を作成する際に、モジュールSitecoreアセットイメージを使って追加のSitecoreモジュールを含める方法を説明しています。"
---
# Sitecoreモジュールの追加

このトピックではSitecoreモジュール *のアセットイメージ* を紹介し、カスタムSitecore Docker画像を作成する際にこれらを使って追加のSitecoreモジュールを含める方法を説明します。ここで使われている例では、[Sitecore](https://doc.sitecorepowershell.com/) [PowerShell Extensions(SPE)](https://doc.sitecorepowershell.com/) とSitecore Experience Accelerator(SXA)モジュールを*Sitecore Experience Platform - Single(XP0)* インスタンスに追加します。

## Docker Examplesリポジトリをクローンする

まだであれば、[Docker Exampleリポジトリ](https://github.com/Sitecore/docker-examples) をマシン上のC:\\sitecore\\docker-examples\\ (例ではこのフォルダを使用しています)にクローンしてください。例では*custom-images*フォルダを使用しています。

## 例を用意してください

*カスタム画像*の例は実行前に準備が必要です。まだ準備をしていない場合は、準備手順[に従うか、](https://doc.sitecore.com/xp/ja/developers/103/developer-tools/run-your-first-sitecore-instance.html "Run your first Sitecore instance")付属のinit.ps1スクリプトを実行して自動的に準備手順を実行してください。

-   PowerShell管理者プロンプトを開き、*custom-images*フォルダに移動し、\-LicenseXmlPathをSitecoreライセンスファイルの場所に置き換えて次のコマンドを実行してください。
    
    .\\init.ps1 -LicenseXmlPath C:\\License\\license.xml
    

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

Sitecore、カスタムSitecoreイメージを作成する際にSitecoreモジュールをインストールするために必要なファイルやスクリプトを含む公式対応のモジュール *アセットイメージ* を提供しています。 [あなたのソリューション](https://doc.sitecore.com/xp/ja/developers/103/developer-tools/build-sitecore-solutions.html "Build Sitecore solutions")と同様に、これらのアセットイメージはビルド中のソースとして意図されており、実行時には使用されません。

各Sitecoreモジュールごとに、各トポロジーごとに単一のアセットイメージがあります。利用可能なすべてのモジュールの一覧については、[Sitecoreモジュールの参考文献](https://doc.sitecore.com/xp/ja/developers/103/developer-tools/sitecore-module-reference.html "Sitecore module reference") を参照してください。

*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チートシート](https://doc.sitecore.com/xp/ja/developers/103/developer-tools/sitecore-docker-cheat-sheet.html "Sitecore Docker cheat sheet") にその方法が説明されています。

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

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

以下の例は、Sitecore PowerShell拡張(SPE)とSitecore Experience Accelerator(SXA)モジュールを*Sitecore Experience Platform - Single(XP0)* トポロジーに追加するための構成を示しています。

### Add Dockerfile instructions

各ロールごとにDockerfileの指示を追加するには:

-   **Content Management (CM)の役割**
    
    *CM*サービスのSitecoreランタイムDockerfileを開きます(例:C:\\sitecore\\docker-examples\\custom-images\\docker\\build\\cm\\Dockerfile)。SPEやSXAのモジュールアセットイメージは、Docker Composeで設定されたARGsで最初に取り込まれ、その後、後で使用される名前付きのビルドステージとして開始され、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指示が以下に調整されていることに注目してください:
    
    -   speとsxaの実際のビルドステージをソースとして使ってください\--from
    -   宛先には相対パス .\\ を使いましょう。前の WORKDIR は作業ディレクトリを C:\\inetpub\\wwwroot
    
    > !ヒントキャッシュを最適化するには、[Dockerfileのベストプラクティス](https://doc.sitecore.com/xp/ja/developers/103/developer-tools/dockerfile-best-practices-and-scenarios.html "Dockerfile best practices and scenarios")であるステップの変化が*少ないから最も頻繁に変わ*る順に並べ、解答指示*の前に*モジュール命令を追加してください。
    
-   **Microsoft SQL Server (mssql-init) 役割**
    
    次に *、mssql-init*サービス(例: C:\\sitecore\\docker-examples\\custom-images\\docker\\build\\mssql-init\\Dockerfile)のSitecoreランタイムDockerfileを開きます。同じARGとビルドの段階を宣言し、その後、SPEとSXAの両方に必要な*mssql-init* Dockerfile命令を追加します。
    
    COPY --from=spe \\module\\db \\spe\_data
    
-   **Apache Solr Init (solr-) role**
    
    最後に *、solr-init*サービス(例: C:\\sitecore\\docker-examples\\custom-images\\docker\\build\\solr-init\\Dockerfile)のSitecoreランタイム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\_IMAGEとSXA\_IMAGEの値は、Sitecoreモジュール参照に従って各モジュールのDockerイメージリポジトリを使用するように設定されています。*xp0*画像は存在しないため、*SXAはsitecore-sxa-xp1-assets*を使用します。

特定のモジュールイメージタグまたはバージョンは、専用のSPE\_VERSIONおよびSXA\_VERSION変数で定義されています。これらは [環境ファイル](https://docs.docker.com/compose/env-file/) (.env)で定義されています。

その他のサービス(mssql-initとsolr-init)も同様の構成で行われます。

## Docker Examplesを実行する

Dockerの例を実行するには:

1.  PowerShellプロンプトを開き、*custom-images*フォルダ(例: C:\\sitecore\\docker-examples\\custom-images)に移動し、Docker Compose upコマンドでDocker例を実行します:
    
    docker-compose up -d
    
2.  インスタンスが稼働したら、[https://cm.dockerexamples.localhost/sitecore](https://cm.dockerexamples.localhost/sitecore)にアクセスしてSitecoreにログインしてください。ユーザー名は*admin*で、パスワードは.envファイル(デフォルトで*Password12345*init.ps1)で指定したSITECORE\_ADMIN\_PASSWORD値を使ってください。
    
3.  Sitecore PowerShell拡張(SPE)やSitecore Experience Accelerator(SXA)に詳しいなら、モジュールがインストールされていることがすぐにわかります。
    
    ご存じない場合は、Launchpadに追加のボタンが見られます: **PowerShell ISE**および**PowerShellレポート**。これらはSitecore PowerShell拡張機能(SPE)によって追加されています:
    
    ![PowerShell icons in Sitecore-](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/103/developer-tools/images/SPE-Launchpad-Buttons.png)
    
4.  コンテンツエディターを開きます。ルート **コンテンツ** フォルダでテ **ナン** ト挿入オプションを見ることができます。これらはSitecore Experience Accelerator(SXA)によって追加されました:
    
    ![Tenant insert option in the Content Editor.](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/103/developer-tools/images/SXA-Content-Editor-Tenant.png)
    
5.  終わったら、downコマンドを使って容器を停止し、取り外してください。
    
    docker-compose down