初めてのSitecoreインスタンスを実行する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このトピックでは、最小限の設定ですぐに使用できるSitecore Experience Platform - Single (XP0) インスタンスをすばやく稼働させる方法を示します。
このトピックでは、わかりやすくするためにSitecore Experience Platform - Single (XP0) 構成を使用しますが、同じ方法を使用して任意の構成を開始できます。
各SitecoreトポロジのDocker Composeファイルは、Sitecoreダウンロード ページからダウンロードできるSitecore Container Deployment Packageに含まれています。
このトピックでは、ローカル環境がWindows上のDockerを使用して開発するように設定されていることを前提としています。詳細については、「 環境設定 」を参照してください。Windowsコンテナーに切り替えたことを確認します。
また、有効なSitecoreライセンス ファイルも必要です。
デフォルトのSitecoreコンテナ設定では、特定のポートが使用されます。競合を回避するには、ポート443、8079、8081、8984、および14330が別のプロセスによって使用されていないことを確認してください。
Troubleshooting Dockerアドバイスも利用できます。
Docker Examplesリポジトリをクローンする
まず、Docker Examplesリポジトリ をマシン上の場所 ( C:\sitecore\docker-examples\ など) にクローンします (次の手順では、このフォルダーを使用することを前提としています)。このトピックでは、リポジトリ内のgetting-startedフォルダを使用します。
PowerShellプロンプトを開き、getting-startedフォルダーに移動します。これには、次のファイルが含まれています。
-
docker-compose.ymlと .env : Docker Composeファイルの種類。これらは、バニラのSitecoreインスタンスを起動するために必要な主要なファイルです。 Included in the Sitecore Container Deployment Package。
-
mssql-data、solr-data、traefik - Sitecoreインスタンス内のDockerコンテナーで使用されるサポート フォルダー Included in the Sitecore Container Deployment Package.
-
init.ps1とclean.ps1 - ヘルパースクリプトの例。 Not part of the Sitecore Container Deployment Package.
これらのそれぞれについては、次のセクションで詳しく説明します。
Docker Composeファイル
-
docker-compose.yml
このComposeファイルは、docker composeコマンドで使用されるメイン構成ファイルです。これには、さまざまなコンテナ ( servicesと呼ばれます) とその設定に関する情報が含まれています。
Sitecoreの場合、サービスは通常、トポロジを構成する個々のSitecoreロール (mssql、solr、id、cmなど) を表します。
-
.env
これは環境ファイルです。ここでの値には、Composeファイルで参照される環境変数( SITECORE_DOCKER_REGISTRYなど)のデフォルト値が示されるか、Composeの設定( COMPOSE_PROJECT_NAMEなど)に使用します。
環境変数は、構成設定をコンテナに渡すための推奨される方法です。これらがSitecoreコンテナでどのように使用されているかは、docker-compose.ymlファイルで確認できます。たとえば、mssqlサービスでは、SQL Server SAパスワード (SA_PASSWORD) を構成するための環境変数を設定します。
mssql:
isolation: ${ISOLATION}
image: ${SITECORE_DOCKER_REGISTRY}sitecore-xp0-mssql:${SITECORE_VERSION}
environment:
SA_PASSWORD: ${SQL_SA_PASSWORD}
SITECORE_ADMIN_PASSWORD: ${SITECORE_ADMIN_PASSWORD}
ACCEPT_EULA: "Y"
SQL_SERVER: mssql
ports:
- "14330:1433"
値は、変数置換 (${SQL_SA_PASSWORD}) を使用して .envファイルから取得されます。
準備
リポジトリには、すべての準備手順を自動的に実行するスクリプト ( init.ps1スクリプト) が含まれています。
このスクリプトを実行するには:
-
PowerShell管理者プロンプトを開きます。
-
次のコマンドを実行し、-LicenseXmlPathをSitecoreライセンス ファイルの場所に置き換えます。
RequestResponse.\init.ps1 -LicenseXmlPath C:\License\license.xml
スクリプトを使用しない場合は、次のセクションの手順に従ってください。
SitecoreDockerToolsをインストールする
SitecoreDockerTools PowerShellモジュールには、DockerベースのSitecore開発で使用するさまざまなヘルパー コマンドレットがあります。これらのコマンドにより、準備手順が大幅に簡素化されます (ただし、必須ではありません)。
PowerShellから次のコマンドを実行してインストールするか、SitecoreDockerToolsページの指示に従ってください。
Register-PSRepository -Name "SitecoreGallery" -SourceLocation "https://nuget.sitecore.com/resources/v2/"
Install-Module SitecoreDockerTools
環境ファイルを設定する
.envファイルには、次の未割り当ての値があります。
COMPOSE_PROJECT_NAME=sitecore-xp0
SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/
SITECORE_VERSION=10.1.0-ltsc2019
SITECORE_ADMIN_PASSWORD=
SQL_SA_PASSWORD=
TELERIK_ENCRYPTION_KEY=
SITECORE_IDSECRET=
SITECORE_ID_CERTIFICATE=
SITECORE_ID_CERTIFICATE_PASSWORD=
SITECORE_LICENSE=
CM_HOST=xp0cm.localhost
ID_HOST=xp0id.localhost
TRAEFIK_IMAGE=traefik:v2.2.0-windowsservercore-1809
TRAEFIK_ISOLATION=hyperv
ISOLATION=default
SOLR_CORE_PREFIX_NAME=sitecore
# You should change the shared secret to a random string and not use the default value
MEDIA_REQUEST_PROTECTION_SHARED_SECRET=HQ(NjM(u6_5koVla-cTf4ta8x1h6Sb+ZcUQrULUz-0Afpx0cx-NuMtIoQkpDFmX5
『 Installation Guide for a Developer Workstation with Containers 』では、これらの各変数と、指定できる値について説明しています。
この時点で値が指定されている変数は更新する必要はありませんが、空の変数には値を指定する必要があります。
-
SITECORE_ADMIN_PASSWORDとSQL_SA_PASSWORDを任意のパスワードに設定します。
手記SQL SAパスワードは、SQL Serverの複雑さの要件を満たしている必要があります。
また、SitecoreDockerToolsモジュールを使用して、PowerShellでこれらのパスワードを設定および生成することもできます: init.ps1スクリプトは両方をPassword12345に設定します。
-
Telerik暗号化キーを設定するには、環境ファイルがあるフォルダーで管理者として次のPowerShellスクリプトを実行します。
RequestResponseImport-Module SitecoreDockerTools Set-DockerComposeEnvFileVariable "TELERIK_ENCRYPTION_KEY" -Value (Get-SitecoreRandomString 128)
これにより、SitecoreDockerToolsモジュールがセッションにインポートされ、次の2つのコマンドレットを使用してTELERIK_ENCRYPTION_KEY変数が設定されます。
-
Set-DockerComposeEnvFileVariable : Docker Compose .envファイルに変数値を設定します。
-
Get-SitecoreRandomString: パスワードまたはキーとして使用するランダムな文字列を返します。
-
-
Identity Server変数を設定するには、次のPowerShellスクリプトを実行します。
RequestResponseImport-Module SitecoreDockerTools Set-DockerComposeEnvFileVariable "SITECORE_IDSECRET" -Value (Get-SitecoreRandomString 64 -DisallowSpecial) $idCertPassword = Get-SitecoreRandomString 12 -DisallowSpecial Set-DockerComposeEnvFileVariable "SITECORE_ID_CERTIFICATE" -Value (Get-SitecoreCertificateAsBase64String -DnsName "localhost" -Password (ConvertTo-SecureString -String $idCertPassword -Force -AsPlainText)) Set-DockerComposeEnvFileVariable "SITECORE_ID_CERTIFICATE_PASSWORD" -Value $idCertPassword
これにより、SitecoreDockerToolsのaコマンドレットを使用して、SITECORE_IDSECRET、SITECORE_ID_CERTIFICATE、およびSITECORE_ID_CERTIFICATE_PASSWORD変数が設定されます。
-
Get-SitecoreCertificateAsBase64String: 新しい自己署名証明書を生成し、パスワードで保護されたBase64エンコード形式で証明書を返します。
-
-
Sitecoreライセンス変数を設定するには、次のPowerShellスクリプトを実行し、-PathをSitecoreライセンス ファイルの場所に置き換えます。
RequestResponseImport-Module SitecoreDockerTools Set-DockerComposeEnvFileVariable "SITECORE_LICENSE" -Value (ConvertTo-CompressedBase64String -Path "C:\License\license.xml")
Sitecoreライセンス ファイルは非常に大きいため、すべての環境変数でWindowsで許可されている最大サイズに収まるように圧縮してBase64エンコードする必要があります。SitecoreDockerToolsのConvertTo-CompressedBase64Stringコマンドレットはこれを行います。
手記Docker Compose環境ファイルではなくWindowsで環境変数を設定することで、複数のSitecoreインスタンス間で変数を再利用できます。
手記または、license.xmlファイルを含むフォルダーを各サービスにマウントし、SITECORE_LICENSE_LOCATION変数を設定することもできます。xConnectサービスの場合、これはライセンス ファイルを含むフォルダーである必要があります。他のすべてのサービスでは、ファイル自体へのパスである必要があります。
TLS/HTTPS証明書を構成する
Sitecoreは、Docker Composeのデフォルトのリバース プロキシまたはエッジ ルーターとしてTraefikを使用します。 getting-started\traefikフォルダには、次のものが含まれています。
-
certs
生成した証明書を配置する空のフォルダ。
-
config/dynamic/certs_config.yaml
Traefikコンテナによって使用されるTraefik設定ファイル。
このtraefikフォルダー全体は、docker-compose.ymlファイル内のDockerボリュームを持つTraefikコンテナーで使用できます。
traefik:
[...]
volumes:
- source: \\.\pipe\docker_engine
target: \\.\pipe\docker_engine
type: npipe
- ./traefik:C:/etc/traefik
[...]
traefikサービスは、相対 ./traefikフォルダをC:/etc/traefikで実行中のコンテナにマップします。
このパスは、Traefikサービス構成によって使用され、--providers.file.directoryはC:/etc/traefik/config/dynamic ( certs_config.yamlファイルがある場所) として指定されます。詳細については、Traefikのドキュメント を参照してください。
certs_config.yamlファイルでは、ボリュームを使用してcertsフォルダー内の証明書も参照します。
tls:
certificates:
- certFile: C:\etc\traefik\certs\xp0cm.localhost.crt
keyFile: C:\etc\traefik\certs\xp0cm.localhost.key
- certFile: C:\etc\traefik\certs\xp0id.localhost.crt
keyFile: C:\etc\traefik\certs\xp0id.localhost.key
mkcertのインストール
mkcertユーティリティーを使用して、必要な証明書を生成します。
mkcertをインストールするには、次のようにします。
-
ファイルの名前をmkcert.exeに変更します。
-
ファイルを、PATH環境変数 ( C:\Windows\system32など) のいずれかにあるディレクトリに移動します。
-
管理者モードでコマンドプロンプトを開き、次のコマンドを実行します mkcert -install
Chocolateyを使用している場合は、次のコマンドを使用してmkcertをインストールできます。
choco install mkcert
mkcert -install
証明書の生成
getting-startedフォルダで次のコマンドを実行して、必要な証明書を生成します。
mkcert -cert-file traefik\certs\xp0cm.localhost.crt -key-file traefik\certs\xp0cm.localhost.key "xp0cm.localhost"
mkcert -cert-file traefik\certs\xp0id.localhost.crt -key-file traefik\certs\xp0id.localhost.key "xp0id.localhost"
Windowsホスト・ファイル・エントリーの追加
xp0cm.localhostホスト名とxp0id.localhostホスト名をWindows hostsファイルに追加し、ループバックIPアドレス127.0.0.1を指すようにすることができます。
127.0.0.1 xp0cm.localhost
127.0.0.1 xp0id.localhost
または、SitecoreDockerToolsのAdd-HostsEntryコマンドレットを使用することもできます。
Add-HostsEntry "xp0cm.localhost"
Add-HostsEntry "xp0id.localhost"
Sitecoreを起動します
Sitecoreを起動するには:
-
Composeファイルと同じフォルダで次のコマンドを実行します。
RequestResponsedocker compose up -d
このコマンドは、次の処理を行います。
-
必要なすべてのイメージをSitecore Container Registryからダウンロードします。
-
使用するデフォルトのネットワークを作成します。
-
構成された各サービスのコンテナを作成します。
-
構成されたエントリポイントでコンテナを起動します。
-d (detached mode) は、コンテナをバックグラウンドで起動し、実行したままにしておくようにDockerに指示します。これを省略すると、コンテナ・ログは代わりに出力にストリームされるため、プロンプトに戻るには「Ctrl+C」と入力する必要があります。これを行うと、コンテナも停止して削除されます。
このコマンドと、このガイドで使用されるその他の一般的なコマンドのクイック リファレンスについては、Sitecore Dockerチート シートを参照してください。
実行中のコンテナを表示する
作成したコンテナを表示するには:
-
docker psコマンドを実行します。
RequestResponsedocker ps
これにより、実行中のすべてのコンテナのリストがUpのステータスで示されます。また、コンテナID、使用されているイメージ、およびコンテナが公開されているポートも確認できます。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
75684e9146f2 traefik:v2.2.0-windowsservercore-1809 "/traefik --ping --a…" 7 seconds ago Up 3 seconds (healthy: starting) 80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:8079->8080/tcp sitecore-xp0_traefik_1
67be2b1350e1 scr.sitecore.com/sxp/sitecore-xp0-cm:10.1.0-ltsc2019 "C:\\LogMonitor\\LogMo…" 21 seconds ago Up 11 seconds (healthy) 80/tcp sitecore-xp0_cm_1
e553b6ab0fb5 scr.sitecore.com/sxp/sitecore-xp0-cortexprocessingworker:10.1.0-ltsc2019 "C:\\LogMonitor\\LogMo…" 21 seconds ago Up 11 seconds (healthy) sitecore-xp0_cortexprocessingworker_1
8d40d14da8a2 scr.sitecore.com/sxp/sitecore-xp0-xdbautomationworker:10.1.0-ltsc2019 "C:\\LogMonitor\\LogMo…" 21 seconds ago Up 12 seconds (healthy) sitecore-xp0_xdbautomationworker_1
b4279d4f6de7 scr.sitecore.com/sxp/sitecore-id:10.1.0-ltsc2019 "C:\\LogMonitor\\LogMo…" 27 seconds ago Up 21 seconds (healthy) 80/tcp sitecore-xp0_id_1
41418243fd0d scr.sitecore.com/sxp/sitecore-xp0-xdbsearchworker:10.1.0-ltsc2019 "C:\\LogMonitor\\LogMo…" 27 seconds ago Up 20 seconds (healthy) sitecore-xp0_xdbsearchworker_1
6f4e64033031 scr.sitecore.com/sxp/sitecore-xp0-xconnect:10.1.0-ltsc2019 "C:\\LogMonitor\\LogMo…" 27 seconds ago Up 21 seconds (healthy) 0.0.0.0:8081->80/tcp sitecore-xp0_xconnect_1
33931b923acb scr.sitecore.com/sxp/sitecore-xp0-mssql:10.1.0-ltsc2019 "powershell -Command…" About a minute ago Up 56 seconds (healthy) 0.0.0.0:14330->1433/tcp sitecore-xp0_mssql_1
3b362d8ed9a6 scr.sitecore.com/sxp/sitecore-xp0-solr:10.1.0-ltsc2019 "powershell -Command…" About a minute ago Up 56 seconds 0.0.0.0:8984->8983/tcp sitecore-xp0_solr_1
一部のステータスに (health: starting)が付いている場合がありますが、これは、設定されたヘルスチェックを満たすためにまだウォームアップ中であることを意味します(docker-compose.ymlファイルのhealthcheckを参照)。docker psコマンドを再度実行すると、最終的にこれらすべてが (healthy)に変わります。
Sitecoreコンテナへのアクセス
リバースプロキシによって処理されるコンテナには、HTTPSプロトコルを使用して、設定されたホスト名 (ex https://xp0cm.localhost) を使用してアクセスします。
公開される残りのコンテナは、特定のポートを使用するように事前に設定されています (docker-compose.ymlファイルのportsを参照)。Docker Desktop for Windowsのデフォルト構成では、これらのポートにはWindows localhostでアクセスします。
つまり、次のようにSitecore Experience Platform - Single (XP0) コンテナにアクセスできます。
-
Sitecoreコンテンツ管理(cm): https://xp0cm.localhost
-
Sitecore Identity Server (ID): https://xp0id.localhost
-
Sitecore xConnectサーバー (xconnect): http://localhost:8081
-
Apache Solr(solr): http://localhost:8984
-
Microsoft SQL Server (mssql): localhost,14330
-
Traefik: http://localhost:8079
SQL Serverへの接続について
ポートを使用してSQL Serverに接続する場合、構文は若干異なります。前に示したように、コロン (:) の代わりにコンマ (,) を使用する必要があります。SQL Server認証には、saアカウントと、.envファイルのSQL_SA_PASSWORDに指定した値 (既定ではinit.ps1ファイルでPassword12345) を使用して接続できます。

スキーマの設定とインデックスの更新
Sitecoreコンテナ環境には、起動時に実行され、必要なコアをSolrコンテナに作成し (まだ存在しない場合)、終了するsolr-initコンテナが含まれています。これは想定される動作です。
ただし、このコンテナーはSolrマネージド スキーマにデータを格納したり、インデックスを再構築したりしません。これは、手動で行うか、カスタムスクリプトを使用して行う必要があります。これを行わないと、コンテナログにSolr関連のエラーが表示されます。
マネージド スキーマを設定し、インデックスを更新するには:
-
Sitecoreにadminとしてログインします。
-
Control Panelを開き、すべての検索インデックスの管理スキーマを設定します。
-
Control Panelで、検索インデックスを再構築します。
インスタンスを確認する
インスタンスを検証するには:
-
https://xp0cm.localhostを参照して、SitecoreのデフォルトのWebサイトを表示します。
-
https://xp0cm.localhost/sitecoreを参照し、Sitecoreにログインできることを確認します。User Nameにはadminを使用し、Passwordの .envファイル のSITECORE_ADMIN_PASSWORDに指定した値 (init.ps1ファイルではデフォルトでPassword12345) を使用します。
-
次のコマンドでログを見て、すべてのコンテナのログを確認します。
RequestResponsedocker compose logs -f --tail 20
-f (または --follow) オプションはDockerに出力をストリームするように指示し、--tailオプションは初期ログ出力を各コンテナの最後の20行に制限します。ログの先頭にコンテナが付けられていることがわかります。
-
完了したらCtrl+Cを入力してプロンプトに戻ります。
Sitecoreを停止する
Sitecoreインスタンスを停止するには:
-
次のコマンドを実行します。
RequestResponsedocker compose stop
これにより、コンテナは停止しますが、コンテナは削除されません。その後、docker compose startを使用して再度開始できます。
-
コンテナを停止して取り外すには:
RequestResponsedocker compose down
これにより、コンテナが停止するだけでなく、コンテナと作成されたネットワークも削除されます。
-
コンテナを停止して削除し、イメージも削除するには:
--rmi <all/local>を追加します。
開発ワークフローには、これらのコマンドの組み合わせが含まれます。コマンドは、トポロジにもよりますが、比較的高速です。
永続ストレージのクリーンアップ
これで、mssql-dataフォルダとsolr-dataフォルダにファイルがあります。 traefikフォルダと同様に、これらはComposeファイルに ボリューム としてマウントされたフォルダです。これらはdocker-compose.ymlファイルで設定されます。
mssql:
[...]
volumes:
- type: bind
source: .\mssql-data
target: c:\data
solr:
[...]
volumes:
- type: bind
source: .\solr-data
target: c:\data
フォルダは、mssqlサービスのデータベース・ファイルおよびsolr ・サービスのインデックス・ファイルの永続ストレージとして使用されます。つまり、データベースとインデックスのデータは、docker compose downコマンドの後でも残ります。
ただし、新たに開始したい場合や、Sitecore管理者パスワードを変更する場合など、データが古いためにこれらをクリアする必要がある場合があります。
これらのフォルダ内のファイルを手動で削除することも、clean.ps1スクリプトを使用することもできます。
ファイルを削除するには:
-
でPowerShell管理者プロンプトを開きます。 getting-started folder.
-
次のコマンドを実行します。
RequestResponse.\clean.ps1