Tailwind Logo

SXA のモジュールを追加する

Next.jsDockerHeadless SXA

公開日: 2023-01-12

前回は XM1 のインスタンスを起動することができました。今回は、Next.js のプロジェクトを追加するにあたって必要となる Sitecore Experience Accelerator のモジュールをコンテナで利用できる様に追加の設定をしていきます。

Docker の設定、イメージの変更

まず最初に、モジュールをインストールするために以下の設定を追加します。まずは .env のファイルに以下の3つの項目を設定します。

Plain Text
SITECORE_MODULE_REGISTRY=scr.sitecore.com/sxp/modules/
SPE_VERSION=6.4-1809
SXA_VERSION=10.3-1809

続いて docker-compose.override.yml に対して、SXA や SPE のモジュールをインストールするため、mssql-initsolr-initcd および cm に以下のイメージの値を渡してください(実際に追加するのは args の下の行となります)。

Dockerfile
  ssql-init:
    build:
      args:
        SPE_IMAGE: ${SITECORE_MODULE_REGISTRY}sitecore-spe-assets:${SPE_VERSION}

  solr-init:
    build:
      args:
        SXA_IMAGE: ${SITECORE_MODULE_REGISTRY}sitecore-sxa-xm1-assets:${SXA_VERSION}

  cd:
    build:
      args:
        SXA_IMAGE: ${SITECORE_MODULE_REGISTRY}sitecore-sxa-xm1-assets:${SXA_VERSION}
  cm:
    build:
      args:
        SPE_IMAGE: ${SITECORE_MODULE_REGISTRY}sitecore-spe-assets:${SPE_VERSION}
        SXA_IMAGE: ${SITECORE_MODULE_REGISTRY}sitecore-sxa-xm1-assets:${SXA_VERSION}

これで各 Dockerfile を build する時に、必要なファイルを利用することが可能となります。まずは cd の dockerfile には以下の項目を追加してください。

Dockerfile
ARG SXA_IMAGE

FROM ${SXA_IMAGE} as sxa

# Add SXA module
COPY --from=sxa \module\cd\content .\
COPY --from=sxa \module\tools \module\tools
RUN C:\module\tools\Initialize-Content.ps1 -TargetPath .\; `
    Remove-Item -Path C:\module -Recurse -Force;

続いて cm の dockerfile を編集します。

Dockerfile
ARG SXA_IMAGE
ARG SPE_IMAGE

FROM ${SPE_IMAGE} as spe
FROM ${SXA_IMAGE} as sxa

# Add SPE module
COPY --from=spe \module\cm\content .\

# Add SXA module
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;

続いて mssql-init の dockerfile の作業です。

Dockerfile
ARG SPE_IMAGE
FROM ${SPE_IMAGE} as spe

# copy pse
COPY --from=spe C:\module\db C:\resources\spe

最後に solr-init の dockerfile を更新します。

Dockerfile
ARG SXA_IMAGE

FROM ${SXA_IMAGE} as sxa

# Add SXA module
COPY --from=sxa C:\module\solr\cores-sxa.json C:\data\cores-sxa.json

これでモジュールのインストールの準備が完了しました。

起動する

まず以前に起動していたデータを一度削除します。docker フォルダにある clean.ps1 ファイルを利用して全て削除してください。なお、すでに起動している場合は一度落としてください。

PowerShell
cd docker.\clean.ps1cd ..

今回はイメージをビルド改めてして起動するだけですので、以下のコマンドを実行して改めてコンテナを起動します。

PowerShell
docker-compose builddocker-compose up -d

コンテナが起動したあと、起動している Sitecore のサーバーにアクセスをします。ログイン後、コンテンツエディターでテナントの作成ができることを確認してください。

sxa01.png

Solr のインデックスに対しても、sxa の項目があるかどうか確認をしてください。

sxa02.png

正しく動作している場合は、一度インデックスを rebuild をして今回の準備を完了とします。

まとめ

これで Sitecore XM の環境で SXA を利用できる様になりました。次回は、Sitecore の Next.js のプロジェクトを作成して Sitecore と連携できるようにします。

関連タグ