Tailwind Logo

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

XM CloudDocker

公開日: 2023-12-07

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

docker-images リポジトリ

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

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

dockerxmcloud01.png

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

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

dockerxmcloud02.png

それぞれのベースイメージを確認していきます。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 に関しては以下のイメージがありました。

dockerxmcloud03.png

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

dockerxmcloud04.png

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

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

dockerxmcloud05.png

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

Plain Text
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月にリリースされているため、これも以下のように書き換えます。

Plain Text
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 がリリースされていました。ということで書き換えます。

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

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

変更点のおさらい

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

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

dockerxmcloud06.png

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

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

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

まとめ

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

関連ページ

関連タグ