初めてSitecoreインスタンスを起動してください

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

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このトピックでは、最小限の設定で箱から出したSitecore Experience Platform - Single(XP0) インスタンスを素早く稼働させる方法を示しています。

!注このトピックではシンプルにするためにSitecore Experience Platform - Single(XP0) 構成を使用していますが、どの設定でも同じ方法で開始できます。

各SitecoreトポロジーのDocker ComposeファイルはSitecore Container Support Packageに含まれており、https://dev.sitecore.netからダウンロードできます。

このトピックは、ローカル環境がWindows上でDockerで開発できるように設定されていることを前提としています。詳細は 環境設定 をご覧ください。Windowsコンテナに切り替えていることを確認してください。

有効なSitecoreライセンスファイルも持っている必要があります。

!重要デフォルトのSitecoreコンテナ構成は特定のポートを使用しています。競合を避けるために、以下のポートが他のプロセスで使用されていないことを確認してください

、8079、8081、8984、14330。

Dockerのトラブルシューティング アドバイスも利用可能です。

Docker Examplesリポジトリをクローンする

まずDocker Exampleリポジトリ をマシン上のC:\sitecore\docker-examples\ などの場所にクローンします(以下の手順はこのフォルダを使うことを前提としています)。このトピックでは、getting-startフォルダを使用します。

PowerShellプロンプトを開き、getting-startフォルダに移動します。そこには以下のファイルが含まれています:

  • docker-compose.yml および .env : Docker Compose ファイルの種類。これらはバニラSitecoreインスタンスを起動するために必要な主要なファイルです。 Sitecoreコンテナサポートパッケージに含まれています
  • mssql-datasolr-data、traefik - Sitecoreインスタンス内のDockerコンテナで利用されるサポートフォルダー。Sitecoreコンテナサポートパッケージに含まれています
  • init.ps1 そして clean.ps1 - 例示ヘルパースクリプト。 Sitecoreコンテナサポートパッケージの一部ではありません

これらの各点については、以下のセクションでより詳しく説明します。

Docker Composeファイル

  • docker-compose.yml

    このComposeファイルはdocker composeコマンドで使用される主要な設定ファイルです。異なるコンテナ( サービスと呼ばれる)とその構成に関する情報が含まれています。

    Sitecoreの場合、サービスは一般的にトポロジーを構成する個々のSitecoreロール(mssql、solr、id、cmなど)を表します。

  • .env

    これは環境ファイルです。ここでの値は、Composeファイルで参照される環境変数(例: SITECORE_DOCKER_REGISTRY)のデフォルト値を提供します。またはComposeの設定(例: COMPOSE_PROJECT_NAME)に使います。

環境変数は、設定設定をコンテナに渡す推奨される方法です。 docker-compose.ymlファイルでSitecoreコンテナでどのように使われているかを見ることができます。例えば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
    "

値は変数置換(${SQL_SA_PASSWORD})を用いて .envファイルから取得されます。

!注SQL Server SAのパスワードはSQL Serverのパスワードポリシー 要件を満たす必要があります。そうでなければ、SQL Serverコンテナが正しく動作しない可能性があります。

調理

リポジトリにはすべての準備ステップを自動的に実行するスクリプト、すなわちinit.ps1スクリプトが含まれています。

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

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

  2. 次のコマンドを実行し、-LicenseXmlPathをSitecoreライセンスファイルの場所に置き換えてください:

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

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

Install 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.0.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

.2.0-windowsservercore-1809 TRAEFIK_ISOLATION=hyperv ISOLATION=default

コンテナ 付き開発者ワークステーションのインストールガイド には、これらの変数それぞれと指定できる値が説明されています。

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

  1. SITECORE_ADMIN_PASSWORDとSQL_SA_PASSWORDを好きなパスワードに設定してください。

    !注SQL SAパスワードはSQL Serverの複雑さ要件を満たす必要があります。

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

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

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

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

    • Set-DockerComposeEnvFileVariable : はDocker Compose .env ファイルに変数値を設定します。
    • Get-SitecoreRandomStringパスワードまたはキーとして使うランダムな文字列を返します。
  3. Identity Server変数を設定するには、以下のPowerShellスクリプトを実行します:

    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

    これはSITECORE_IDSECRET、SITECORE_ID_CERTIFICATE、SITECORE_ID_CERTIFICATE_PASSWORD変数を設定し、SitecoreDockerToolsのaコマンドレットを用いて設定します。

    • Get-SitecoreCertificateAsBase64String: 新しい自己署名証明書を生成し、パスワード保護されたBase64エンコード形式で証明書を返します。
  4. Sitecoreライセンス変数を設定するには、以下のPowerShellスクリプトを実行し、-PathをSitecoreライセンスファイルの場所に置き換えます。

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

    Sitecoreライセンスファイルは非常に大きく、Windowsが許容する環境変数の最大サイズに収まるために圧縮とBase64エンコードが必要です。SitecoreDockerToolsのConvertTo-CompressedBase64Stringコマンドレットがこれを行います。

    !注複数のSitecoreインスタンス間で変数を再利用するには、Docker Compose環境ファイルではなくWindowsで環境変数を設定することができます。

    !注あるいは、各サービスにlicense.xmlファイルをマウントし、SITECORE_LICENSE_LOCATION変数を設定することもできます。xConnectサービスの場合、これはライセンスファイルを含むフォルダでなければなりません。その他のサービスでは、ファイル自体へのパスでなければなりません。

TLS/HTTPS証明書の設定

SitecoreはTraefikをDocker Composeのデフォルトのリバースプロキシまたはエッジルーターとして使用しています。 getting-started\traefikフォルダには以下のものが含まれています:

  • 認定資格

    生成した証明書を入れる空のフォルダです。

  • config/dynamic/certs_config.yaml

    Traefikコンテナで使用されるTraefikの設定ファイル。

このtraefikフォルダ全体はTraefikコンテナ用に提供されており、docker-compose.ymlファイル内にDockerボリュームがあります。

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をインストールするには:

  1. 最新のWindows実行ファイルをダウンロードしてください。
  2. ファイル名を mkcert.exeに変更しました。
  3. ファイルをPATH環境変数のいずれかにあるディレクトリに移動してください。例えば C:\Windows\system32。
  4. 管理者モードでコマンドプロンプトを開き、実行してください mkcert -install

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

choco install mkcert mkcert -install

証明書の生成

getting-startフォルダ内の以下のコマンドを実行して必要な証明書を生成してください:

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 Hostsファイルのエントリを追加

Windows hostsファイルにxp0cm.localhostとxp``0id.localhostホスト名を追加し、ループバック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ファイルと同じフォルダ内で以下のコマンドを実行してください:

    docker compose up -d

このコマンドは以下の通りです:

  • Sitecoreコンテナレジストリから必要なすべてのイメージをダウンロードします。
  • デフォルトのネットワークを作成します。
  • 構成された各サービスごとにコンテナを作成します。
  • コンテナは設定されたエントリーポイントからスタートします。

!注 -d (切り離したモード)は、Dockerにバックグラウンドでコンテナを起動し、そのまま実行させておくよう指示します。これを省略すると、コンテナログが出力にストリーミングされ、プロンプトに戻るにはCtrl``+Cと入力する必要があります。これを行うとコンテナも停止し、削除されます。

このガイドで使われる他の一般的なコマンドの簡単な参照については、Sitecore Dockerチートシートをご覧ください。

ランニングコンテナを見る

作成したコンテナを見るには:

  • docker psコマンドを実行してください:

    docker ps

この場合は、状態がUpで示されたすべての稼働中のコンテナのリストが表示されます。また、コンテナID、使用されている画像、コンテナが露出しているポートも確認できます。

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 75684e9146f2 traefik

.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
.0.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
.0.0-ltsc2019 "C:\\LogMonitor\\LogMo…" 21 seconds ago Up 11 seconds (healthy) sitecore-xp0_cortexprocessingworker_1 8d40d14da8a2 scr.sitecore.com/sxp/sitecore-xp0-xdbautomationworker
.0.0-ltsc2019 "C:\\LogMonitor\\LogMo…" 21 seconds ago Up 12 seconds (healthy) sitecore-xp0_xdbautomationworker_1 b4279d4f6de7 scr.sitecore.com/sxp/sitecore-id
.0.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
.0.0-ltsc2019 "C:\\LogMonitor\\LogMo…" 27 seconds ago Up 20 seconds (healthy) sitecore-xp0_xdbsearchworker_1 6f4e64033031 scr.sitecore.com/sxp/sitecore-xp0-xconnect
.0.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
.0.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
.0.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://xp0cm.localhost)を使ってHTTPSプロトコルでアクセスします。

他の公開コンテナは特定のポートを使用するよう事前に設定されています(docker-compose.ymlファイルのportsを参照)。WindowsのDocker Desktopのデフォルト設定では、これらのポートにはlocalhostでアクセスできます。

つまり、Sitecore Experience Platform - Single(XP0) コンテナに以下のようにアクセスできます:

SQL Serverへの接続について

ポートを使ってSQL Serverに接続すると、構文が少し異なります。前述のようにコロン(:))ではなく、カンマ(,)を使う必要があります。認証SQL Serverは*、SA*アカウントと.envファイルで指定したSQL_SA_PASSWORD値(init.ps1ファイルではデフォルトでPassword12345)を使って接続できます:

Shows how you connect to SQL Server.

自分の事例を検証してください

あなたの例を検証するために:

  1. https://xp0cm.localhostでSitecoreデフォルトのウェブサイトをご覧ください。

  2. https://xp0cm.localhost/sitecoreを閲覧して、Sitecoreにログインできるか確認してください。ユーザー名はadmin、パスワードは.envファイル(init.ps1ファイルではデフォルトでPassword12345)で設定したSITECORE_ADMIN_PASSWORDの値を使います。

  3. 以下のコマンドでログを確認し、すべてのコンテナからのログを確認してください:

    docker compose logs -f --tail 20

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

  4. 終わったらCtrl+Cと入力してプロンプトに戻ってください。

Sitecoreを止めろ

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

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

    docker compose stop

    これで容器は止まりますが、取り外されるわけではありません。その後、容器をdocker compose startで再開できます。

  • 容器を止めて取り出す方法:

    docker compose down

    これによりコンテナは停止しますが、同時にコンテナや作成されたネットワークも削除されます。

  • 容器を停止・削除し、画像も削除するには:

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

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

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

現在、mssql-datasolr-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スクリプトを使うこともできます。

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

  1. getting-startフォルダでPowerShell管理者プロンプトを開きます。

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

    .\clean.ps1

さらなる参考文献

この記事を改善するための提案がある場合は、 お知らせください!