前回は環境を準備するところまでとして、コンテナを起動することはありませんでした。今回は、サンプルを実行するためのスクリプト up.ps1 を参考にしながらどういう形でコンテナを起動することになるのかを確認していきます。
コンテナイメージのダウンロードとビルド
手軽に起動するのであれば、以下のコマンドを実行すると問題ありません。
.\up.ps1
が、今回はこの中身を見ながら進めていきたいとおもいます。まず最初に、このスクリプトでは全てのイメージのビルドを実行しています。
docker compose build
これを実行すると、必要なイメージのダウンロードが開始されます。
![sample06.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F2nQSmxirEp8E4lGZT2iuHd%2F20db58a3827e30e3e6d0e687fdf98f70%2Fsample06.png&w=3840&q=75)
このコマンドは、docker-compose.yml および docker-compose.override.yml に定義されている内容をもとに、イメージを作成していく形です。build は非常に時間がかかるので、コーヒーを飲みながら見守っておきましょう。
コンテナの起動
ビルドが完了したら、今度はコンテナを起動します。コマンドは以下の通り。
docker compose up -d
![sample07.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F2VQedDOEDMGyr065umcw48%2Fb240eaf43e2d796ee51353967c8ecef4%2Fsample07.png&w=3840&q=75)
コンテナが起動したのを確認したあと、以下のサイトにアクセスをしてください。
https://cm-basic-company-nextjs.sitecoredemo.jp/
![sample08.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2FJnc8xnYTdKskRyG4eTC9K%2F7d360f7390210d681c22b0a1a46c7c28%2Fsample08.png&w=3840&q=75)
標準のページが表示されています。管理画面にアクセスをするために、 /sitecore を追加してアクセスをします。するとログイン画面が表示されます。事前に設定した管理者のパスワードでログインをすると、以下のように管理画面に入ることができました。
![sample09.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F5OCXy17Fjs6xB74X9MxUVL%2F3c407ee20aad6c0e08446942c86810f7%2Fsample09.png&w=3840&q=75)
データのインポート
すでに Sitecore のインスタンスが起動しているため、ここから先はデモ用のコンテンツをインポートしていきます。ここから先日紹介をした Sitecore CLI の出番となります。
まず、コマンドラインツールを使えるように以下のコマンドを実行します。
dotnet tool restore
この環境では、Sitecore CLI 4.0.0 が復元されます。
![sample10.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F5O7IfGOM2YAnvTegIcQVyB%2F80f7b7a2ac50479f94cc3656a156cc8d%2Fsample10.png&w=3840&q=75)
続いてコマンドラインで Sitecore にアクセスできるようにログインを実行します。まず、PowerShell で以下のコマンドを実行します。
dotnet sitecore login --cm https://cm-basic-company-nextjs.sitecoredemo.jp/ --auth https://id-basic-company-nextjs.sitecoredemo.jp/ --allow-write true
![sample11.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F2pZGY5eHflRjrHIqVzLbeX%2F509f31cd272ff581a6638ea44b98bf97%2Fsample11.png&w=3840&q=75)
ブラウザが起動して、ログインおよび API へのアクセスに関しての確認画面が表示されます。
![sample12.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F401OSEz4hiJFiem6YbHfCX%2Fd6f5dc307c30b28fca69b74475dfee50%2Fsample12.png&w=3840&q=75)
承認をすると画面が切り替わります。
![sample13.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F7GxGYHlwIndnxulRcD7zBJ%2F607c13f5f60aa7249a24028333bfc19a%2Fsample13.png&w=3840&q=75)
コマンドラインがログインをすることができました。
![sample14.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F7HMw5theTSoYcqb0mZpnfe%2F9e3eec372d6f583125fc547af1f88cb0%2Fsample14.png&w=3840&q=75)
続いて以下の処理を実行しています。まず最初に Solr と連携している Schema に関する処理です。
dotnet sitecore index schema-populate
続いてインデックスのリビルドを実行します。
dotnet sitecore index rebuild
![sample15.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2FxMBumlqFzy7XCS8WDYZIh%2F6ee018c9be93c43a0dabe9d59fdc8d94%2Fsample15.png&w=3840&q=75)
CD サーバーをリスタートします
docker compose restart cd
この段階で、管理画面のコンテンツエディターでアクセスをすると、以下のようにまだ何も入ってないデフォルトの設定のままとなっています。
![sample16.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F7szs7Eh8c6AmqJfRAtZfR7%2F1e5fe1774e05d6b18e047df76f818f14%2Fsample16.png&w=3840&q=75)
インポートを実行する際には、以下のコマンドを実行します。
dotnet sitecore ser push --publish
![sample17.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F5v76jAaRktfbXmHV91LsY5%2Ffdccbd652b2fffdc40134de83f5fbf37%2Fsample17.png&w=3840&q=75)
インポートが完了したあと、コンテンツエディタを見にいくとアイテムが生成されているのがわかります。
![sample18.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F5CK6NbImbHmn9T4VMoHHM8%2Ffbd3426ac605a3595ec46fa9de79c8bf%2Fsample18.png&w=3840&q=75)
publish も完了しているため、web データベースにもアイテムが展開されている状況です。 ここで1点、レンダリングで設定しているサーバーに関して実行が不足しています。これは up.ps1 にも記載されていないため、追加の手順となります。まず、 C:\projects\helix-basic-nextjs\src\Project\BasicCompany\nextjs のパスまで移動してください。移動後、npm install を実行します。
![sample19.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F1VQdYeMpJ4DiPuI1P4iFZY%2Faff861afdb206c394e0e94945b7bda59%2Fsample19.png&w=3840&q=75)
レンダリングホストに関してこの処理が抜けているため、この作業を抜きの場合はエラーになります。コマンドを実行後は正しく動作するようになります。
エクスペリエンスエディターを起動すると、フィールドで定義されている項目の変更が可能です。
![sample20.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F15FWvw6JHYJ9ixwK7wPeL5%2Fb1542aa42be066d8fd2455472dd0d9a2%2Fsample20.png&w=3840&q=75)
またレンダリングホストにアクセスしてもページが表示されているのを確認できます。
![sample21.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F3Ly1Ta5GdUD0a5DobCoIw2%2F0370855f5ab574a9b3e9fb2f03aba6d0%2Fsample21.png&w=3840&q=75)
まとめ
前回は環境の設定、今回は実際に Sitecore が起動するところまでの紹介となりました。up.ps1 を実行するだけではわかりにくい部分がありましすが、順を追って動作を確認、個別に実行することで、どういう形でデモサイトをセットアップしているのかを確認することができました。インポートが終われば、あとは docker compose stop で停止、docker compose up -d で起動すれば良いというのも一度手順を追って実行すると理解できます。