Sitecore XM Cloud に限らず、Sitecore の最新版に関する Docker イメージの提供をしています。これにより開発環境や検証環境の切り替えを容易にしています。今回は Sitecore の Docker イメージについて紹介をします。
docker-images リポジトリ
Sitecore の製品を利用するにあたっての Docker のイメージに関する情報は、以下の GitHub のリポジトリで公開されています。
このリポジトリの中にある tags の下に Json ファイルと Markdown ファイルの2つが用意されています。実際に Markdown のファイルを見に行くと、XM Cloud 関連では以下のイメージのリストが表示されています。
XM Cloud のプロジェクトを確認
ローカルで Docker を立ち上げる際の環境の確認をしていきます。ローカルで起動した場合、7 つのコンテナが起動します。
それぞれのベースイメージを確認していきます。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 に関しては以下のイメージがありました。
実際のイメージがどのバージョンか確認をするために Digest を利用して検索をすると、1.4.529.2950-10.0.20348.2031-ltsc2022 という形で 11 月に作成されいるのがわかります。
同様に mssql-init と solr-init が用意されているのかを確認すると、用意されていました。
続いて mssql-developer と solr に関して確認すると、ltsc2022 は準備されています(どちらも次のスクリーンショットで表示されています)。
すべてのイメージの確認をしました。一気に変更するために、.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 以上小さくなっています。
また Windows 11 の環境では Docker のプロセス分離を LTSC2022 から利用できるようになったのが大きいです。
なおコンテナイメージに対してのサポートライフサイクルがマイクロソフトから提供されています。
実は LTSC2019 のメインストリームサポートは 2024年1月9日まで、このブログ記事を公開してすぐに切れてしまいます。公式のプロジェクトのイメージも、そろそろ変更されるかもしれませんね。
まとめ
今回は手元のプロジェクトを最新 OS に切り替える手順を紹介しました。今回のポイントは、切り替える際に参照する場所を紹介しているため、今後 OS やイメージのバージョンとかを確認したいときに、リポジトリを参照すればいい、という点を理解していただければと思います。