実行中のコンテナとのアイテムの同期

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

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

このトピックでは、コンテナでローカルのSitecore環境を実行している場合に、シリアル化されたアイテムをプッシュおよびプルする方法について説明します。Sitecoreアイテムをシリアル化する方法と、Sitecoreソリューションを開発およびデプロイするときにシリアル化を使用する方法をすでに理解している必要があります。

Sitecore CLI / Sitecoreコンテンツのシリアル化

Sitecore 10以降で使用可能なSitecore CLIは、リモートSitecoreインスタンスとの対話用に最適化されています。 sitecore ser pullsitecore ser pushsitecore ser watchなどのコマンドは、他のSitecoreインスタンスと同様に、コンテナーで実行されているSitecore環境で使用できます。

サイトコアTDS

Sitecore TDSはHTTPベースのサービスを介して通信するため、Sitecore環境がコンテナー内にある場合も、他のSitecoreインスタンスとまったく同じように機能します。TDSがコネクタをCMコンテナーに正常にインストールできるように、Visual Studioでコンテナー環境とTDSプロジェクトを設定する方法を知っておく必要があります。

GitHubのHelix.Examplesリポジトリには、完全な例が含まれています。

コンテナ用のTDSプロジェクトの設定

Sitecore TDSのドキュメントに詳細が記載されていますが、基本的な手順は次のとおりです。

  1. Visual Studioビルドの場合と同様に、CMコンテナーのDockerfileと ランタイム ファイルのデプロイのエントリポイントを設定します。

  2. TDSプロジェクトのSitecore Web Urlを、Sitecoreコンテナー環境のCMサービスに使用するホスト名に設定します。

  3. TDSプロジェクトのSitecore Deploy Folder IDを、Sitecore CMファイルのデプロイ用にマウントされたパス (docker\deploy\websiteフォルダーなど) に設定します。パスは、TDSプロジェクトのロケーションを基準にした相対パスである必要があります。

  4. TDSプロジェクトのEnable container deploymentオプションをオンにします。これにより、コンテナー・ベースの環境に対するTDSサービス・インストールの一部の動作が最適化されます。

  5. TDSプロジェクトのInstall Sitecore Connectorオプションを確認します。

このようにTDSを構成すると、ランタイム ファイルのデプロイに適した場所にコード ビルドをデプロイすることもできます。

TdsGlobal.configでの設定

TdsGlobal.config設定ファイルを使用している場合は、次のように必要な値を設定できます。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <SitecoreWebUrl>https://cm.dockerexamples.localhost</SitecoreWebUrl>
    <SitecoreDeployFolder>..\..\docker\deploy</SitecoreDeployFolder>
    <InstallSitecoreConnector>True</InstallSitecoreConnector>
    <EnableContainerDeployment>True</EnableContainerDeployment>
    <!-- Your access GUID here: -->
    <SitecoreAccessGuid>00000000-0000-0000-0000-000000000000</SitecoreAccessGuid>
  </PropertyGroup>
</Project>
Setting options in TDS.

ユニコーンの設定

大事な

Unicornはサードパーティのオープンソース ツールであり、Sitecoreサポートではサポートされていません。これらの手順は、Unicornユーザーの便宜のために、ガイダンスとしてのみ提供されています。

UnicornはSitecoreプラットフォームとインプロセスで実行され、ファイルシステムからアイテムを直接プッシュおよびプルします。開発中は、バインド マウント を使用して、Unicorn (CMコンテナー内で実行されている) がソリューション ソース コード内のシリアル化された項目を更新できるようにすることができます。

GitHubのHelix.Examplesリポジトリには、完全な例が含まれています。

シリアル化されたアイテムのマウント

通常、Unicornの同期に使用されるベース ファイル システム パスは、Sitecore設定でsourceFolderというsc.variableで設定します。この値は、環境変数から入力できます。

<sc.variable name="sourceFolder" value="$(env:ITEM_SYNC_LOCATION)" />

ビルド時にシリアル化された項目をCMコンテナに既にコピーしている場合、これはそのパスの設定に使用するのと同じ環境変数である必要があります。開発時には、docker-compose.override.yml内の環境変数を、ソリューションからマウントしたパスに設定できます。

  cm:
    [...]
    environment:
      ITEM_SYNC_LOCATION: c:\items-mounted
    volumes:
      - ${LOCAL_ITEM_PATH}:c:\items-mounted

その後、.envファイルで構成されたLOCAL_ITEM_PATH変数を、ソリューション内のUnicornアイテム ルートの相対パスに構成できます。

LOCAL_ITEM_PATH=.\src

設定すると、コンテンツエディタ内のUnicorn通知にはCMコンテナ内のアイテムのパスが表示されますが、これらのアイテムへの変更はコンテナホストのファイルシステム(開発環境)にも反映されます。

The Content Editor.

トランスペアレント同期の構成

Unicornの 透過的な同期 により、機能ブランチを切り替えたり、ソース管理から最新のものをプルしたりするときに、明示的にプッシュする必要なく、シリアル化されたアイテムを操作できます。ただし、この機能は、運用環境などの他の環境で無効にすることもできます。

この場合、環境変数を再度利用してUnicornを構成できます。

<unicorn role:require="Standalone or ContentManagement">
    <defaults>
        <dataProviderConfiguration set:enableTransparentSync="$(env:UNICORN_ENABLE_TRANSPARENT_SYNC)" />
    </defaults>
</unicorn>

この値は、docker-compose.override.yml.envで設定できます。

  cm:
    [...]
    environment:
      UNICORN_ENABLE_TRANSPARENT_SYNC: ${UNICORN_ENABLE_TRANSPARENT_SYNC}
UNICORN_ENABLE_TRANSPARENT_SYNC=true
この記事を改善するための提案がある場合は、 お知らせください!