XM Cloud の Docker イメージについて

公開日 :

Sitecore XM Cloud に限らず、Sitecore の最新版に関する Docker イメージの提供をしています。これにより開発環境や検証環境の切り替えを容易にしています。今回は Sitecore の Docker イメージについて紹介をします。

docker-images リポジトリ

Sitecore の製品を利用するにあたっての Docker のイメージに関する情報は、以下の GitHub のリポジトリで公開されています。

このリポジトリの中にある tags の下に Json ファイルと Markdown ファイルの2つが用意されています。実際に Markdown のファイルを見に行くと、XM Cloud 関連では以下のイメージのリストが表示されています。

random desc

XM Cloud のプロジェクトを確認

ローカルで Docker を立ち上げる際の環境の確認をしていきます。ローカルで起動した場合、7 つのコンテナが起動します。

random desc

それぞれのベースイメージを確認していきます。docker-compose.yml、docker-compose.override.yml および .env を確認すると、以下のようになっています。

イメージ名

実際のイメージ

traefik

traefik:v2.5.3-windowsservercore-1809

mssql

scr.sitecore.com/sxp/nonproduction/mssql-developer:2017-ltsc2019

mssql-init

scr.sitecore.com/xmcloud/sitecore-xmcloud-mssql-init:1-ltsc2019

solr

scr.sitecore.com/sxp/nonproduction/solr:8.11.2-ltsc2019

solr-init

scr.sitecore.com/xmcloud/sitecore-xmcloud-solr-init:1-ltsc2019

cm

scr.sitecore.com/xmcloud/sitecore-xmcloud-cm:1-ltsc2019

nodejs

mcr.microsoft.com/windows/nanoserver:1809

rendering

nodejs

rendering のイメージの親となる nodejs のイメージがあるため、設定としては 8 つ用意されていました。この2つは Next.js のレンダリングの部分を担うものとなっています。また、traefik に関しては公式のイメージをそのまま利用しています。

残り5つのうち、XM Cloud のイメージを利用しているものが cm, mssql-init, solr-init の3つ、mssql および solr に関しては Sitecore XP で利用している DB を利用している形です。

最新のイメージを検証

基本的には最新のイメージを利用する形に設定されていますが、今回は Docker Image のベースとなるバージョンを ltsc2019 から ltsc2022 に変更したいと思います。設定を変更する前に、リポジトリで該当するイメージの ltsc2022 が提供されている確認をします。

cm に関しては以下のイメージがありました。

random desc

実際のイメージがどのバージョンか確認をするために Digest を利用して検索をすると、1.4.529.2950-10.0.20348.2031-ltsc2022 という形で 11 月に作成されいるのがわかります。

random desc

同様に mssql-init と solr-init が用意されているのかを確認すると、用意されていました。

続いて mssql-developer と solr に関して確認すると、ltsc2022 は準備されています(どちらも次のスクリーンショットで表示されています)。

random desc

すべてのイメージの確認をしました。一気に変更するために、.env の以下の項目を変更します。

SITECORE_VERSION=1-ltsc2022
EXTERNAL_IMAGE_TAG_SUFFIX=ltsc2022

他に Docker のイメージを参照している項目を確認すると、TOOLS_IMAGE が scr.sitecore.com/tools/sitecore-docker-tools-assets:10.2.0-1809 を参照しています。イメージの一覧を参照すると、10.2.0-ltsc2022 が今年の8月にリリースされているため、これも以下のように書き換えます。

TOOLS_IMAGE=scr.sitecore.com/tools/sitecore-docker-tools-assets:10.2.0-ltsc2022

最後に Node.js のベースとしている nanoserver の情報を https://hub.docker.com/_/microsoft-windows-nanoserver のページで確認すると、こちらも ltsc2022 がリリースされていました。ということで書き換えます。

NODEJS_PARENT_IMAGE=mcr.microsoft.com/windows/nanoserver:ltsc2022

これで一通り設定が完了しました。再度イメージをビルドして実行をします。ベースのイメージを LTSC2022 にしただけですので、特に動作に違いはなく、利用できることを確認しました。

変更点のおさらい

今回は Docker のイメージを最新版にするため、各イメージの最新版をリポジトリの一覧を見ながら確認をしてアップデートをしました。今年の夏にはこのイメージがリリースされていたのですが、紹介をしたのはこのタイミングという形です。

今回の変更のメリットとしては、ディスクサイズが小さくなっているのがすぐにわかります。CM のイメージに至っては 2.5GB 以上小さくなっています。

random desc

また Windows 11 の環境では Docker のプロセス分離を LTSC2022 から利用できるようになったのが大きいです。

なおコンテナイメージに対してのサポートライフサイクルがマイクロソフトから提供されています。

実は LTSC2019 のメインストリームサポートは 2024年1月9日まで、このブログ記事を公開してすぐに切れてしまいます。公式のプロジェクトのイメージも、そろそろ変更されるかもしれませんね。

まとめ

今回は手元のプロジェクトを最新 OS に切り替える手順を紹介しました。今回のポイントは、切り替える際に参照する場所を紹介しているため、今後 OS やイメージのバージョンとかを確認したいときに、リポジトリを参照すればいい、という点を理解していただければと思います。

関連ページ