基本的には公式ドキュメントに記載されている手順を元に進めれば環境構築は可能ですが、
公式ドキュメントはクリーンなPC環境に対してDockerでSitecoreの環境構築を行う前提で記載されているため、
既にローカルのPCのIISにSitecore環境が構築されてる場合、公式ドキュメント通りにはできませんでした。
今回はIISにSitecore環境が構築されていたとしても、DockerでSitecoreの環境構築ができるような手順を紹介します。
公式ドキュメントはこちらです。
※本記事ではDockerに関する用語や機能についての説明は省かせていただきます。
注意点
手順を紹介する前にDockerを用いてSitecoreの環境構築をする上での注意事項を紹介します。
PCのメモリは32GB以上を推奨
公式ドキュメントによると最小のメモリは16GBと記載されていますが、
Sitecore XP環境を構築する際に16GBではかなりPCのメモリが逼迫されてしまったため、
可能であればPCのメモリは32GB以上あることが望ましいです。
Cドライブの空き容量が30GB以上確保
DockerにてSitecoreの環境構築をする場合、いくつかDocker ImageをPullします。
Sitecoreで使用するDocker Imageのサイズが大きいため、30GB以上空き容量があることが望ましいです。
サンプルプロジェクトの環境構築手順
※本手順ではSitecore Identity Serverを使用せずに環境構築を行います。
1. コントロールパネルからHyper-Vとコンテナーを有効にしてください。
2. Docker Desktop for Windowsをダウンロードしインストールしてください。
3. Docker Desktopを開き、タスクバーのシステムトレイ内のDockerアイコンを右クリックし、「Swich to Windows containers...」をクリックし、windowsコンテナに切り替えてください。
4. サンプルプロジェクトのリポジトリをCloneしてください。
(本手順では"C:\git"にCloneした前提で進めます)
5. "C:\git\docker-examples\getting-started"直下にSitecoreのライセンスファイルを配置してください。
6. Windows Powershellを管理者で開き、以下のスクリプトを実行してください。
#ディレクトリの移動
cd C:\git\docker-examples\getting-started
#Sitecoreライセンスファイルの圧縮やTLS/HTTPS証明書の生成を行うスクリプトの実行
./init.ps1 -LicenseXmlPath C:\git\docker-examples\getting-started\license.xml
7. "C:\git\docker-examples\getting-started\.env"ファイル内の「HTTPS_PORT」の値を使用されていない任意のポートに変更してください。
(本手順では8443ポートを使用します)
8. "C:\git\docker-examples\getting-started\docker-compose.yml"の「cm」の「environment」内の内容を編集してください。
#Sitecore_Identity_Server_Authority: https://${ID_HOST}
#↑を↓に置き換える
Sitecore_Identity_Server_Authority: https://${CM_HOST}
9. "C:\git\docker-examples\getting-started\docker-compose.yml"の「id」の設定を削除してください。
その際に「traefik」と「cm」の「depends_on」内の「id」の設定も削除してください。
10. No.6で開いたWindows Powershellで以下のコマンドを実行してください。
docker-compose up -d
以上の手順を実施後、Dockerで立ち上がっているSitecore環境(https://xp0cm.localhost)にアクセスできるようになるかと思います。
最後に
私の場合、既にIISなどで443ポートが使用されていたため、公式ドキュメントの手順ではDockerコンテナが立ち上がりませんでした。
もちろんIISを停止させローカルの443ポートを開放すれば、公式の手順通り進めることが可能です。
Sitecoreの公式ドキュメントにはポートの変更方法が記載されていませんでしたので、
(正解かはわかりませんが)今回はローカルのIISを停止させずにDockerを用いてSitecoreの環境構築をする方法を紹介いたしました。
※エントリーの内容・画像等は、公開時点での情報に基づきます。
※Sitecoreのバージョンによって実装されている機能が異なります。