初めてのSitecoreインスタンスを実行する

Version: 10.1
日本語翻訳に関する免責事項

このページの翻訳は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-datasolr-datatraefik - Sitecoreインスタンス内のDockerコンテナーで使用されるサポート フォルダー Included in the Sitecore Container Deployment Package.

  • init.ps1clean.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) を構成するための環境変数を設定します。

RequestResponse
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スクリプト) が含まれています。

このスクリプトを実行するには:

  1. PowerShell管理者プロンプトを開きます。

  2. 次のコマンドを実行し、-LicenseXmlPathをSitecoreライセンス ファイルの場所に置き換えます。

    RequestResponse
    .\init.ps1 -LicenseXmlPath C:\License\license.xml

スクリプトを使用しない場合は、次のセクションの手順に従ってください。

SitecoreDockerToolsをインストールする

SitecoreDockerTools PowerShellモジュールには、DockerベースのSitecore開発で使用するさまざまなヘルパー コマンドレットがあります。これらのコマンドにより、準備手順が大幅に簡素化されます (ただし、必須ではありません)。

PowerShellから次のコマンドを実行してインストールするか、SitecoreDockerToolsページの指示に従ってください。

RequestResponse
Register-PSRepository -Name "SitecoreGallery" -SourceLocation "https://nuget.sitecore.com/resources/v2/"
Install-Module SitecoreDockerTools

環境ファイルを設定する

.envファイルには、次の未割り当ての値があります。

RequestResponse
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 』では、これらの各変数と、指定できる値について説明しています。

この時点で値が指定されている変数は更新する必要はありませんが、空の変数には値を指定する必要があります。

  1. SITECORE_ADMIN_PASSWORDSQL_SA_PASSWORDを任意のパスワードに設定します。

    手記

    SQL SAパスワードは、SQL Serverの複雑さの要件を満たしている必要があります。

    また、SitecoreDockerToolsモジュールを使用して、PowerShellでこれらのパスワードを設定および生成することもできます: init.ps1スクリプトは両方をPassword12345に設定します。

  2. Telerik暗号化キーを設定するには、環境ファイルがあるフォルダーで管理者として次のPowerShellスクリプトを実行します。

    RequestResponse
    Import-Module SitecoreDockerTools
    Set-DockerComposeEnvFileVariable "TELERIK_ENCRYPTION_KEY" -Value (Get-SitecoreRandomString 128)

    これにより、SitecoreDockerToolsモジュールがセッションにインポートされ、次の2つのコマンドレットを使用してTELERIK_ENCRYPTION_KEY変数が設定されます。

    • Set-DockerComposeEnvFileVariable : Docker Compose .envファイルに変数値を設定します。

    • Get-SitecoreRandomString: パスワードまたはキーとして使用するランダムな文字列を返します。

  3. Identity Server変数を設定するには、次のPowerShellスクリプトを実行します。

    RequestResponse
    Import-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_IDSECRETSITECORE_ID_CERTIFICATE、およびSITECORE_ID_CERTIFICATE_PASSWORD変数が設定されます。

    • Get-SitecoreCertificateAsBase64String: 新しい自己署名証明書を生成し、パスワードで保護されたBase64エンコード形式で証明書を返します。

  4. Sitecoreライセンス変数を設定するには、次のPowerShellスクリプトを実行し、-PathをSitecoreライセンス ファイルの場所に置き換えます。

    RequestResponse
    Import-Module SitecoreDockerTools
    Set-DockerComposeEnvFileVariable "SITECORE_LICENSE" -Value (ConvertTo-CompressedBase64String -Path "C:\License\license.xml")

    Sitecoreライセンス ファイルは非常に大きいため、すべての環境変数でWindowsで許可されている最大サイズに収まるように圧縮してBase64エンコードする必要があります。SitecoreDockerToolsConvertTo-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コンテナーで使用できます。

RequestResponse
traefik:
  [...]
  volumes:
    - source: \\.\pipe\docker_engine
      target: \\.\pipe\docker_engine
      type: npipe
    - ./traefik:C:/etc/traefik
  [...]

traefikサービスは、相対 ./traefikフォルダをC:/etc/traefikで実行中のコンテナにマップします。

このパスは、Traefikサービス構成によって使用され、--providers.file.directoryC:/etc/traefik/config/dynamic ( certs_config.yamlファイルがある場所) として指定されます。詳細については、Traefikのドキュメント を参照してください。

certs_config.yamlファイルでは、ボリュームを使用してcertsフォルダー内の証明書も参照します。

RequestResponse
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をインストールするには、次のようにします。

  1. 最新のWindows実行可能ファイルをダウンロードします。

  2. ファイルの名前をmkcert.exeに変更します。

  3. ファイルを、PATH環境変数 ( C:\Windows\system32など) のいずれかにあるディレクトリに移動します。

  4. 管理者モードでコマンドプロンプトを開き、次のコマンドを実行します mkcert -install

Chocolateyを使用している場合は、次のコマンドを使用してmkcertをインストールできます。

RequestResponse
choco install mkcert
mkcert -install

証明書の生成

getting-startedフォルダで次のコマンドを実行して、必要な証明書を生成します。

RequestResponse
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を指すようにすることができます。

RequestResponse
127.0.0.1   xp0cm.localhost
127.0.0.1   xp0id.localhost

または、SitecoreDockerToolsAdd-HostsEntryコマンドレットを使用することもできます。

RequestResponse
Add-HostsEntry "xp0cm.localhost"
Add-HostsEntry "xp0id.localhost"

Sitecoreを起動します

Sitecoreを起動するには:

  • Composeファイルと同じフォルダで次のコマンドを実行します。

    RequestResponse
    docker compose up -d

このコマンドは、次の処理を行います。

  • 必要なすべてのイメージをSitecore Container Registryからダウンロードします。

  • 使用するデフォルトのネットワークを作成します。

  • 構成された各サービスのコンテナを作成します。

  • 構成されたエントリポイントでコンテナを起動します。

手記

-d (detached mode) は、コンテナをバックグラウンドで起動し、実行したままにしておくようにDockerに指示します。これを省略すると、コンテナ・ログは代わりに出力にストリームされるため、プロンプトに戻るには「Ctrl+C」と入力する必要があります。これを行うと、コンテナも停止して削除されます。

このコマンドと、このガイドで使用されるその他の一般的なコマンドのクイック リファレンスについては、Sitecore Dockerチート シートを参照してください。

実行中のコンテナを表示する

作成したコンテナを表示するには:

  • docker psコマンドを実行します。

    RequestResponse
    docker ps

これにより、実行中のすべてのコンテナのリストがUpのステータスで示されます。また、コンテナID、使用されているイメージ、およびコンテナが公開されているポートも確認できます。

RequestResponse
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) コンテナにアクセスできます。

SQL Serverへの接続について

ポートを使用してSQL Serverに接続する場合、構文は若干異なります。前に示したように、コロン (:) の代わりにコンマ (,) を使用する必要があります。SQL Server認証には、saアカウントと、.envファイルのSQL_SA_PASSWORDに指定した値 (既定ではinit.ps1ファイルでPassword12345) を使用して接続できます。

The Connect to Server dialog.

スキーマの設定とインデックスの更新

Sitecoreコンテナ環境には、起動時に実行され、必要なコアをSolrコンテナに作成し (まだ存在しない場合)、終了するsolr-initコンテナが含まれています。これは想定される動作です。

ただし、このコンテナーはSolrマネージド スキーマにデータを格納したり、インデックスを再構築したりしません。これは、手動で行うか、カスタムスクリプトを使用して行う必要があります。これを行わないと、コンテナログにSolr関連のエラーが表示されます。

マネージド スキーマを設定し、インデックスを更新するには:

  1. Sitecoreにadminとしてログインします。

  2. Control Panelを開き、すべての検索インデックスの管理スキーマを設定します

  3. Control Panelで、検索インデックスを再構築します

インスタンスを確認する

インスタンスを検証するには:

  1. https://xp0cm.localhostを参照して、SitecoreのデフォルトのWebサイトを表示します。

  2. https://xp0cm.localhost/sitecoreを参照し、Sitecoreにログインできることを確認します。User Nameにはadminを使用し、Password.envファイル のSITECORE_ADMIN_PASSWORDに指定した値 (init.ps1ファイルではデフォルトでPassword12345) を使用します。

  3. 次のコマンドでログを見て、すべてのコンテナのログを確認します。

    RequestResponse
    docker compose logs -f --tail 20

    -f (または --follow) オプションはDockerに出力をストリームするように指示し、--tailオプションは初期ログ出力を各コンテナの最後の20行に制限します。ログの先頭にコンテナが付けられていることがわかります。

  4. 完了したらCtrl+Cを入力してプロンプトに戻ります。

Sitecoreを停止する

Sitecoreインスタンスを停止するには:

  • 次のコマンドを実行します。

    RequestResponse
    docker compose stop

    これにより、コンテナは停止しますが、コンテナは削除されません。その後、docker compose startを使用して再度開始できます。

  • コンテナを停止して取り外すには:

    RequestResponse
    docker compose down

    これにより、コンテナが停止するだけでなく、コンテナと作成されたネットワークも削除されます。

  • コンテナを停止して削除し、イメージも削除するには:

    --rmi <all/local>を追加します。

開発ワークフローには、これらのコマンドの組み合わせが含まれます。コマンドは、トポロジにもよりますが、比較的高速です。

永続ストレージのクリーンアップ

これで、mssql-dataフォルダとsolr-dataフォルダにファイルがあります。 traefikフォルダと同様に、これらはComposeファイルに ボリューム としてマウントされたフォルダです。これらはdocker-compose.ymlファイルで設定されます。

RequestResponse
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スクリプトを使用することもできます。

ファイルを削除するには:

  1. でPowerShell管理者プロンプトを開きます。 getting-started folder.

  2. 次のコマンドを実行します。

    RequestResponse
    .\clean.ps1

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、