最初の Sitecore インスタンスの実行

Current version: 10.2

このトピックでは、最小限の設定ですぐに Sitecore Experience Platform - Single (XP0) インスタンスを立ち上げる方法をご紹介します。

注記

このトピックでは、簡単にするために、Sitecore Experience Platform - Single (XP0) の設定を使用していますが、どのような設定でも同じアプローチで開始することができます。

各 Sitecore トポロジの Docker Compose ファイルは、Sitecore ダウンロード ページからダウンロードできる Sitecore コンテナー デプロイ パッケージに含まれています。

このトピックは、ローカル環境が Windows で Docker を使用して開発するために設定されていることを前提としています。詳細については「環境の設定」を参照してください。Windows コンテナーに切り替えたことを確認してください。

また、有効な Sitecore のライセンス ファイルも必要です。

重要

デフォルトの Sitecore コンテナー設定は特定のポートを使用します。競合を避けるために、次のポートが別のプロセスによって使用されていないことを確認してください: 443、8079、8081、8984、および14330。

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

Sitecore コンテナー デプロイ パッケージ

Sitecore コンテナー デプロイ パッケージには、次のファイルが含まれています。

  • docker-compose.yml.env - Docker Compose のファイルの種類。これらはバニラの Sitecore インスタンスの起動に必要な主要なファイルです。

  • mssql-datasolr-data、とtraefik - Sitecore インスタンス内の Docker コンテナーによって利用されるサポート フォルダ。

  • compose-init.ps1 ヘルパー スクリプト。

これらのそれぞれについては、次のセクションで詳しく説明します。

Docker Compose ファイル

  • docker-compose.yml

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

    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}nonproduction/mssql-developer:2017-${SITECORE_VERSION}
  environment:
    SA_PASSWORD: ${SQL_SA_PASSWORD}
    ACCEPT_EULA: "Y"
  ports:
    - "14330:1433"

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

準備

コンテナー パッケージには、次の準備手順を自動的に実行する compose-init.ps1 スクリプトが含まれています。

  • Sitecore ライセンス ファイルを圧縮する

  • Identity Server のトークン署名証明書を作成する

  • .env ファイルに入力する

  • TLS/HTTPS 証明書を生成する

  • ルート証明書を信頼されたルート証明機関にインストールする

  • Windows のホスト名を更新する

注記

Traefik 証明書フォルダーにすでに Traefik 証明書がインストールされている場合、スクリプトは新しい証明書をインストールしません。

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

  1. PowerShell 管理者プロンプトを開きます。compose-init.ps1 ファイルを含むフォルダーに移動します。

  2. 次のコマンドを実行し、-LicenseXmlPath パラメーターで Sitecore ライセンス ファイルの場所を指定します。

    RequestResponse
    .\compose-init.ps1 -Topology "<your_topology>" -LicenseXmlPath "<path_to_the_license_file>" -IdHost <custom_Id_host_name> -CdHost <custom_cd_host_name> -CmHost <custom_cm_host_name> -SitecoreAdminPassword <your_password_for_Sitecore_admin> -SqlSaPassword <your_password_for_sql_sa_user>
    注記

    compose-init.ps1 コマンドに使用できるパラメーターは Sitecore XP 10.2.0 Developer Workstation Deployment with Docker ガイドで説明されています。このガイドは Sitecore ダウンロード ページにあります。

Sitecore の起動

Sitecore を起動するには:

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

    RequestResponse
    docker-compose up -d

このコマンドは次のことを行います。

  • Sitecore コンテナー レジストリから必要なすべてのイメージをダウンロードします。

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

  • 設定されたサービスごとにコンテナーを作成します。

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

注記

-d (デタッチ モード) は、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.2.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.2.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.2.0-ltsc2019     "C:\\LogMonitor\\LogMo…"  21 seconds ago      Up 12 seconds (healthy)                                                                 sitecore-xp0_xdbautomationworker_1
b4279d4f6de7  scr.sitecore.com/sxp/sitecore-id6:10.2.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.2.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.2.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.2.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.2.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 プロトコルでアクセスします (例: https://xp0cm.localhost

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

つまり、Sitecore Experience Platform - Single (XP0) のコンテナーには次のようにアクセスできます。

SQL Server への接続について

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

サーバーへの接続ダイアログ。

スキーマへの入力とインデックスの更新

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

ただし、このコンテナーはSolrが管理するスキーマを投入したり、インデックスを再構築したりすることはありません。これは、手動またはカスタムスクリプトで行う必要があります。この作業を行わないと、コンテナーのログに Solr 関連のエラーが表示されることがあります。

管理されたスキーマを生成し、インデックスを更新するには:

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

  2. [コントロール パネル] を開き、すべての検索インデックスに管理スキーマを生成します。

  3. そのまま [コントロール パネル] で、検索インデックスの再構築を行います。

インスタンスの確認

インスタンスを確認するには:

  1. https://xp0cm.localhost を参照すると、Sitecore のデフォルトの Web サイトが表示されます。

  2. https://xp0cm.localhost/sitecore にアクセスし、Sitecore にログインできることを確認します。"ユーザー名" には "admin" を、"パスワード" には .env ファイルで SITECORE_ADMIN_PASSWORD に指定した値(Password12345compose-init.ps1 ファイルのデフォルト) を使用します。

  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. getting-started フォルダーで PowerShell 管理者プロンプトを開きます。

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

    RequestResponse
    .\clean.ps1

Do you have some feedback for us?

If you have suggestions for improving this article,