ランニングコンテナとアイテムを同期させる
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このトピックでは、コンテナ内でローカルなSitecore環境が稼働している場合に、シリアライズされたアイテムをどのようにプッシュ・プルするかについて説明します。Sitecoreのアイテムをシリアライズする方法と、Sitecoreソリューションの開発・展開時にシリアライズを使う方法をすでに知っている必要があります。
Sitecore CLI / Sitecoreコンテンツシリアライズ
Sitecore 10以降で利用可能なSitecore CLIは、リモートSitecoreインスタンスとの相互作用に最適化されています。 sitecore ser pull、sitecore ser push、sitecore ser watchなどのコマンドは、他のSitecoreインスタンスと同様にコンテナ内で動くSitecore環境でも使えます。
Sitecore TDS
Sitecore TDS HTTPベースのサービスを介して通信するため、Sitecore環境がコンテナ中であっても他のSitecoreインスタンスと同様に全く同じ動作をします。コンテナ環境とプロジェクトをTDS Visual Studioで設定する方法を理解しておく必要があります。そうすればTDSがコネクターをCMコンテナに正常にインストールできるようにしましょう。
Helix。GitHubのサンプルリポジトリには完全な例が含まれています。
コンテナ向けのTDSプロジェクトの設定
Sitecore TDSドキュメントには詳細がありますが、基本的な手順は以下の通りです。
- Visual Studioのビルドと同様に、 CMコンテナのDockerfileとエントリーポイントをランタイムファイル展開用にセットアップします。
- TDSプロジェクトの Sitecore Web Url を、Sitecoreコンテナ環境でCMサービスに使うホスト名に設定してください。
- Docker例リポジトリでは、これは https://cm.dockerexamples.localhost です。
- httpsを忘れないでください。
- TDSプロジェクトの Sitecore Deploy Folder を、Sitecore CMファイル展開のためにマウントされたパス、例えばdocker\deploy\websiteフォルダに設定してください。パスはTDSプロジェクトの位置に対して相対的でなければなりません。
- TDSプロジェクトの「 コンテナデプロイメントを有効にする」オプションを確認してください。これにより、コンテナベースの環境向けにTDSサービスインストールの挙動の一部が最適化されます。
- TDSプロジェクトの Install Sitecore Connector オプションを確認してください。
このようにTDSを設定することで、実行時のファイル展開に適した場所にコードビルドをデプロイできるようになります。
TdsGlobal.configでの設定
TdsGlobal.config設定ファイルを使用している場合は、必要な値を次のように設定できます:

ユニコーンの設定
!重要UnicornはSitecoreサポートによってサポートされていないサードパーティ製のオープンソースツールです。これらの指示は、Unicornユーザーの便宜を図るためのあくまでガイドとして提供されています。
UnicornはSitecoreプラットフォームと連携して進行中で動作し、ファイルシステムから直接アイテムをプッシュ・プルします。開発中は 、バインドマウント を使ってUnicorn(CMコンテナ内で動作)がソリューションのソースコード内のシリアライズされたアイテムを更新できるようにします。
Helix。GitHubのサンプルリポジトリには完全な例が含まれています。
シリアルアイテムをマウントする
通常、Sitecore構成でUnicorn syncに使うベースファイルシステムパスを「sourceFolder」というsc.variableで設定します。この値は環境変数から入力できます:
<sc.variable name="sourceFolder" value="$(env
_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コンテナ内のアイテムのパスを表示しますが、それらのアイテムの変更はコンテナホスト(開発環境)のファイルシステムにも反映されます。

透過同期の設定
UnicornのTransparent syncは、例えば機能ブランチを切り替えたり、ソース管理から最新を取得したりする際に、明示的にプッシュする必要がなく、シリアライズされたアイテムを扱うことを可能にします。ただし、本番環境などではこの機能を無効にしたいかもしれません。
この場合も環境変数を使ってUnicornを設定できます:
この値はdocker-compose.override.ymlで設定でき、.env:
cm: ... environment: UNICORN_ENABLE_TRANSPARENT_SYNC: ${UNICORN_ENABLE_TRANSPARENT_SYNC}
UNICORN_ENABLE_TRANSPARENT_SYNC=true