Dear fellow Sitecorians,
For some days ago Sitecore released their new version Sitecore 9.3 and the documentation is OUTSTANDING as always, check it out at https://doc.sitecore.com/developers/93/index.html π
There are are so many wonderful things in this release:
Sitecore Horizon – Horizon is the next-generation editor in Sitecore Experience Platform
SXA 9.3
Sitecore blob storage
Automated Personalisation (Sitecore AI)
….
Today we will do a follow up on the previous post – #Sitecore Helix Examples, Dockers, Sitecore Helix Visual Studio Templates, VS2019 project type, Sitecore TDS and Libman β All together in harmony
We will upgrade the solution to Sitecore 9.3
As always we will use wonderful docker images from Sitecore Docker images.
Start following the README in my forked repository from Helix.Examples
There have been some changes in how to run the Sitecore 9.3 Docker containers:
Optional ENTRYPOINT scripts
For IIS based images (such as the roles cm, standalone and cd) we now have a few scripts that can be used as ENTRYPOINT for development and production use.Using these ENTRYPOINT scripts enables you to observe Sitecore log entries in the STDOUT of containers in the foreground or by using commands such as docker container logs or docker container attach.
C:\tools\entrypoints\iis\Production.ps1 features:
Adds an UDP appender to all default log4net loggers.
Starts ServiceMonitor.exe in the background.
Starts filebeat.exe in the foreground and outputting to STDOUT.
FileBeat inputs configured:
IIS access logs, disabled by default, can be switched using environment variable: ENTRYPOINT_STDOUT_IIS_ACCESS_LOG_ENABLED=true
IIS error logs, disabled by default, can be switched using environment variable: ENTRYPOINT_STDOUT_IIS_ERROR_LOG_ENABLED=true
Sitecore logs, enabled by default, can be switched using environment variable: ENTRYPOINT_STDOUT_SITECORE_LOG_ENABLED=false
C:\tools\entrypoints\iis\Development.ps1 features:Same as Production.ps1.
Starts the Visual Studio Remote Debugger msvsmon.exe in the background if the Visual Studio Remote Debugger directory is mounted into C:\remote_debugger.
Starts the Watch-Directory.ps1 script in the background if a directory is mounted into C:\src.
See the cm and cd service in windows/tests/9.x.x/docker-compose.xm.yml for configuration examples.
Install and run Sitecore 9.3
Prerequisites – Generate Sitecore Docker Images:
Go to https://github.com/Sitecore/docker-images and clone or copy solution.
Follow instructions and run the Build.ps1. If you just want to have the images locally(not pushing to any registry), change the -PushMode to Never
Here is an example of a Build.ps1 script:
[CmdletBinding(SupportsShouldProcess = $true)] [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingPlainTextForPassword", "SitecorePassword")] param( [Parameter(Mandatory = $false)] [ValidateNotNullOrEmpty()] [string]$InstallSourcePath = (Join-Path $PSScriptRoot "\packages") , [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [string]$SitecoreUsername , [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [string]$SitecorePassword ) $ErrorActionPreference = "STOP" $ProgressPreference = "SilentlyContinue" $azureRepository = "sitecoreimages.azurecr.io" $azureUserName = "ZZZZZZZZZ" $azurePassword = "XXXXXXXXX" # Login docker login $azureRepository -u $azureUserName -p $azurePassword # load module Import-Module (Join-Path $PSScriptRoot "\modules\SitecoreImageBuilder") -Force $baseTags = "*:9.3.0*1903" # restore any missing packages SitecoreImageBuilder\Invoke-PackageRestore ` -Path (Join-Path $PSScriptRoot "\windows") ` -Destination $InstallSourcePath ` -SitecoreUsername $SitecoreUsername ` -SitecorePassword $SitecorePassword ` -Tags $baseTags ` -WhatIf:$WhatIfPreference # start the build SitecoreImageBuilder\Invoke-Build ` -Path (Join-Path $PSScriptRoot "\windows") ` -InstallSourcePath $InstallSourcePath ` -Registry $azureRepository ` -Tags $baseTags ` -PushMode "WhenChanged" # optional (default "WhenChanged"), can also be "Never" or "Always". -WhatIf:$WhatIfPreference
Prerequisites – Install Dockers:
- Navigate to: https://hub.docker.com/editions/community/docker-ce-desktop-windows
- Register and login. Here you will see the download for docker.
- When you've installed Dockers, select windows mode.
Step 1. Verify .env file
Verify and check the ".env variables". They are needed for the docker-compose file. (The .env file is located in the Docker folder)
REGISTRY=sitecoreimages.azurecr.io/ WINDOWSSERVERCORE_VERSION=1903 NANOSERVER_VERSION=1903 SITECORE_VERSION=9.3.0 SITECORE_LICENSE= REMOTEDEBUGGER_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\Remote Debugger SQL_SA_PASSWORD=8Tombs-Given-Clock#-arming-Alva-debut-Spine-monica-Normal-Ted-About1-chard-Easily-granddad-5Context! TELERIK_ENCRYPTION_KEY=qspJhcSmT5VQSfbZadFfzhCK6Ud7uRoS42Qcm8UofvVLiXciUBcUeZELsTo8KD9o6KderQr9Z8uZ9CHisFJNRz46WTZ5qCRufRFt
Step 2. Run script:
Open Windows Powershell. Run it as an administrator.
Navigate to docker in the windows powershell window (e.g C:\Projects\Helix.Examples\examples\helix-basic-tds-with-a-twist\Docker) and run script:
.\Setup-Run-Sitecore-9.3.ps1 "docker-compose.9.3.0.xp.yml" -Path C:\license\license.xml
It will download images(if needed) from the repository, compose/setup a Sitecore instance.
We will not copy files to the wwwroot(in data/cm/), we will go for the black-box approach(recommended).
Setup-Run-Sitecore-9.3.ps1:
param( [Parameter(Mandatory = $true)] [string]$ComposeFile , [Parameter(Mandatory = $true)] [ValidateScript( { Test-Path $_ -PathType "Leaf" })] [string]$PathToLicense ) function CreateWWWrootFoldersInCMAndCD() { $cmPath = Join-Path $PSScriptRoot "\data\cm\wwwroot" $cdPath = Join-Path $PSScriptRoot "\data\cd\wwwroot" if (!(Test-Path $cmPath) -or !(Test-Path $cdPath)) { # Remove docker data path from Windows Defender Add-MpPreference -ExclusionPath (Join-Path $PSScriptRoot "\data") } if (!(Test-Path $cmPath)) { new-item -type directory -path $cmPath -Force } if (!(Test-Path $cdPath)) { new-item -type directory -path $cdPath -Force } } function SetupAndRun($composeFile) { $azureRepository = "sitecoreimages.azurecr.io" $userName = "ZZZZZZZZZ" $password = "XXXXXXXXX" docker login $azureRepository -u $userName -p $password docker-compose -f $composeFile up -d --build } CreateWWWrootFoldersInCMAndCD .\Set-LicenseEnvironmentVariable.ps1 -Path $PathToLicense -PersistForCurrentUser:$true SetupAndRun $ComposeFile
To make Sitecore TDS work properly, some changes had to be made in the docker-compose file.
When the CM and CD container starts up, they will call the C:\tools\entrypoints\iis\Development.ps1 script. The script does many things… One of them is to listen to changes in the root folder, C:\src. And if any changes, it will move content to the inetpub/wwwroot folder. (That is also why the data/cm/wwwroot folder is mapped to C:\src)However there is an issue, it ignores web.config files. That means that all web.config files will be ignored, when they are deployed/published to the data/cm/wwwroot folder. For Sitecore TDS that is not good, because Sitecore TDS needs a web.config(in the _DEV folder) to get the SitecoreAccessGuid.
To fix this I have created a modified version of the Development.ps1, it's called Custom-Tools-Entrypoints-IIS-Development.ps1. The only thing that is changed is that it does NOT exclude web.config files. The script is placed in folder ContainerScripts, the folder is mapped to C:\scripts(in the docker container). Then in docker-compose, the CM container will call the Custom-Tools-Entrypoints-IIS-Development.ps1(instead of the original Development.ps1)
Now Sitecore TDS will work again π
Here(in docker-compose.9.3.0.xp.yml) you can see the "fix":
cm: image: ${REGISTRY}sitecore-xp-standalone:${SITECORE_VERSION}-windowsservercore-${WINDOWSSERVERCORE_VERSION} volumes: - .\ContainerScripts:C:\scripts - .\data\cm\wwwroot:C:\src - ${REMOTEDEBUGGER_PATH}:C:\remote_debugger:ro entrypoint: powershell.exe -NoLogo -NoProfile -File C:\\scripts\\Custom-Tools-Entrypoints-IIS-Development.ps1
Here is the whole docker-compose.9.3.0.xp.yml:
version: '2.4' services: sql: image: ${REGISTRY}sitecore-xp-sqldev:${SITECORE_VERSION}-windowsservercore-${WINDOWSSERVERCORE_VERSION} volumes: - .\data\sql:C:\Data mem_limit: 2GB ports: - "44010:1433" environment: SA_PASSWORD: ${SQL_SA_PASSWORD} ACCEPT_EULA: "Y" solr: image: ${REGISTRY}sitecore-xp-solr:${SITECORE_VERSION}-nanoserver-${NANOSERVER_VERSION} volumes: - .\data\solr:C:\Data mem_limit: 1GB ports: - "44011:8983" xconnect: image: ${REGISTRY}sitecore-xp-xconnect:${SITECORE_VERSION}-windowsservercore-${WINDOWSSERVERCORE_VERSION} volumes: - .\data\xconnect:C:\inetpub\wwwroot\App_Data\logs mem_limit: 1GB environment: SITECORE_LICENSE: ${SITECORE_LICENSE} SITECORE_SITECORE:XCONNECT:COLLECTIONSEARCH:SERVICES:SOLR.SOLRREADERSETTINGS:OPTIONS:REQUIREHTTPS: 'false' SITECORE_SITECORE:XCONNECT:SEARCHINDEXER:SERVICES:SOLR.SOLRWRITERSETTINGS:OPTIONS:REQUIREHTTPS: 'false' SITECORE_CONNECTIONSTRINGS_MESSAGING: Data Source=sql;Database=Sitecore.Messaging;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_PROCESSING.ENGINE.STORAGE: Data Source=sql;Database=Sitecore.ProcessingEngineStorage;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_REPORTING: Data Source=sql;Database=Sitecore.Reporting;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_XDB.MARKETINGAUTOMATION: Data Source=sql;Database=Sitecore.MarketingAutomation;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_XDB.PROCESSING.POOLS: Data Source=sql;Database=Sitecore.Processing.Pools;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_XDB.REFERENCEDATA: Data Source=sql;Database=Sitecore.ReferenceData;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_COLLECTION: Data Source=sql;Database=Sitecore.Xdb.Collection.ShardMapManager;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_SOLRCORE: http://solr:8983/solr/sitecore_xdb depends_on: - sql - solr xconnect-automationengine: image: ${REGISTRY}sitecore-xp-xconnect-automationengine:${SITECORE_VERSION}-windowsservercore-${WINDOWSSERVERCORE_VERSION} volumes: - .\data\xconnect-automationengine:C:\worker\App_Data\logs mem_limit: 500MB environment: SITECORE_LICENSE: ${SITECORE_LICENSE} SITECORE_CONNECTIONSTRINGS_XCONNECT.COLLECTION: http://xconnect SITECORE_CONNECTIONSTRINGS_XDB.MARKETINGAUTOMATION: Data Source=sql;Database=Sitecore.MarketingAutomation;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_XDB.REFERENCEDATA: Data Source=sql;Database=Sitecore.ReferenceData;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_MESSAGING: Data Source=sql;Database=Sitecore.Messaging;User ID=sa;Password=${SQL_SA_PASSWORD} depends_on: - sql - xconnect xconnect-indexworker: image: ${REGISTRY}sitecore-xp-xconnect-indexworker:${SITECORE_VERSION}-windowsservercore-${WINDOWSSERVERCORE_VERSION} volumes: - .\data\xconnect-indexworker:C:\worker\App_Data\logs mem_limit: 500MB environment: SITECORE_LICENSE: ${SITECORE_LICENSE} SITECORE_CONNECTIONSTRINGS_COLLECTION: Data Source=sql;Initial Catalog=Sitecore.Xdb.Collection.ShardMapManager;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_SOLRCORE: http://solr:8983/solr/sitecore_xdb SITECORE_SITECORE:XCONNECT:SEARCHINDEXER:SERVICES:SOLR.SOLRREADERSETTINGS:OPTIONS:REQUIREHTTPS: 'false' SITECORE_SITECORE:XCONNECT:SEARCHINDEXER:SERVICES:SOLR.SOLRWRITERSETTINGS:OPTIONS:REQUIREHTTPS: 'false' depends_on: - sql - solr xconnect-processingengine: image: ${REGISTRY}sitecore-xp-xconnect-processingengine:${SITECORE_VERSION}-windowsservercore-${WINDOWSSERVERCORE_VERSION} volumes: - .\data\xconnect-processingengine:C:\worker\App_Data\logs mem_limit: 500MB restart: unless-stopped environment: SITECORE_LICENSE: ${SITECORE_LICENSE} SITECORE_CONNECTIONSTRINGS_PROCESSING.ENGINE.STORAGE: Data Source=sql;Database=Sitecore.Processing.Engine.Storage;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_PROCESSING.ENGINE.TASKS: Data Source=sql;Database=Sitecore.Processing.Engine.Tasks;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_PROCESSING.WEBAPI.BLOB: http://xconnect SITECORE_CONNECTIONSTRINGS_PROCESSING.WEBAPI.TABLE: http://xconnect SITECORE_CONNECTIONSTRINGS_XCONNECT.COLLECTION: http://xconnect SITECORE_CONNECTIONSTRINGS_XCONNECT.CONFIGURATION: http://xconnect SITECORE_CONNECTIONSTRINGS_XCONNECT.SEARCH: http://xconnect SITECORE_CONNECTIONSTRINGS_MESSAGING: Data Source=sql;Database=Sitecore.Messaging;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_REPORTING: Data Source=sql;Database=Sitecore.Reporting;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_SETTINGS:SERILOG:MINIMUMLEVEL:DEFAULT: Information depends_on: - sql - xconnect cd: image: ${REGISTRY}sitecore-xp-cd:${SITECORE_VERSION}-windowsservercore-${WINDOWSSERVERCORE_VERSION} volumes: - .\ContainerScripts:C:\scripts - .\data\cd\wwwroot:C:\src - ${REMOTEDEBUGGER_PATH}:C:\remote_debugger:ro entrypoint: powershell.exe -NoLogo -NoProfile -File C:\\tools\\entrypoints\\iis\\Development.ps1 ports: - "44002:80" environment: SITECORE_LICENSE: ${SITECORE_LICENSE} SITECORE_APPSETTINGS_ROLE:DEFINE: ContentDelivery SITECORE_CONNECTIONSTRINGS_SECURITY: Data Source=sql;Initial Catalog=Sitecore.Core;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_WEB: Data Source=sql;Initial Catalog=Sitecore.Web;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_EXPERIENCEFORMS: Data Source=sql;Initial Catalog=Sitecore.ExperienceForms;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_SOLR.SEARCH: http://solr:8983/solr SITECORE_CONNECTIONSTRINGS_MESSAGING: Data Source=sql;Database=Sitecore.Messaging;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_EXM.MASTER: Data Source=sql;Database=Sitecore.EXM.Master;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_XCONNECT.COLLECTION: http://xconnect SITECORE_CONNECTIONSTRINGS_XDB.MARKETINGAUTOMATION.OPERATIONS.CLIENT: http://xconnect SITECORE_CONNECTIONSTRINGS_SITECORE.REPORTING.CLIENT: http://xconnect SITECORE_CONNECTIONSTRINGS_XDB.REFERENCEDATA.CLIENT: http://xconnect depends_on: - sql - solr - xconnect cm: image: ${REGISTRY}sitecore-xp-standalone:${SITECORE_VERSION}-windowsservercore-${WINDOWSSERVERCORE_VERSION} volumes: - .\ContainerScripts:C:\scripts - .\data\cm\wwwroot:C:\src - ${REMOTEDEBUGGER_PATH}:C:\remote_debugger:ro entrypoint: powershell.exe -NoLogo -NoProfile -File C:\\scripts\\Custom-Tools-Entrypoints-IIS-Development.ps1 ports: - "44001:80" environment: SITECORE_LICENSE: ${SITECORE_LICENSE} SITECORE_APPSETTINGS_ROLE:DEFINE: Standalone SITECORE_CONNECTIONSTRINGS_CORE: Data Source=sql;Initial Catalog=Sitecore.Core;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_SECURITY: Data Source=sql;Initial Catalog=Sitecore.Core;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_MASTER: Data Source=sql;Initial Catalog=Sitecore.Master;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_WEB: Data Source=sql;Initial Catalog=Sitecore.Web;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_EXPERIENCEFORMS: Data Source=sql;Initial Catalog=Sitecore.ExperienceForms;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_SOLR.SEARCH: http://solr:8983/solr SITECORE_CONNECTIONSTRINGS_MESSAGING: Data Source=sql;Database=Sitecore.Messaging;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_XDB.MARKETINGAUTOMATION: Data Source=sql;Database=Sitecore.MarketingAutomation;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_XDB.PROCESSING.POOLS: Data Source=sql;Database=Sitecore.Processing.Pools;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_XDB.REFERENCEDATA: Data Source=sql;Database=Sitecore.ReferenceData;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_XDB.PROCESSING.TASKS: Data Source=sql;Database=Sitecore.Processing.Tasks;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_EXM.MASTER: Data Source=sql;Database=Sitecore.EXM.Master;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_REPORTING: Data Source=sql;Database=Sitecore.Reporting;User ID=sa;Password=${SQL_SA_PASSWORD} SITECORE_CONNECTIONSTRINGS_SITECORE.REPORTING.CLIENT: http://xconnect SITECORE_CONNECTIONSTRINGS_XCONNECT.COLLECTION: http://xconnect SITECORE_CONNECTIONSTRINGS_XDB.MARKETINGAUTOMATION.OPERATIONS.CLIENT: http://xconnect SITECORE_CONNECTIONSTRINGS_XDB.MARKETINGAUTOMATION.REPORTING.CLIENT: http://xconnect SITECORE_CONNECTIONSTRINGS_XDB.REFERENCEDATA.CLIENT: http://xconnect SITECORE_APPSETTINGS_TELERIK.ASYNCUPLOAD.CONFIGURATIONENCRYPTIONKEY: ${TELERIK_ENCRYPTION_KEY} SITECORE_APPSETTINGS_TELERIK.UPLOAD.CONFIGURATIONHASHKEY: ${TELERIK_ENCRYPTION_KEY} SITECORE_APPSETTINGS_TELERIK.WEB.UI.DIALOGPARAMETERSENCRYPTIONKEY: ${TELERIK_ENCRYPTION_KEY} depends_on: - sql - solr - xconnect
If you have issues, please run the following command:
docker-compose -f docker-compose.9.3.0.xp.yml down
To clean up/remove files in data folder, run script:
.\Clean-Data.ps1
Step 3. Update hosts file
We will be using whales names.
In PowerShell run the following:
npx whales-names
You should see something like this in your hosts file:
# whales-names begin 172.29.130.16 89746fe3a1b8 cd docker_cd_1 172.29.135.134 2bed266603b7 docker_xconnect-processingengine_1 xconnect-processingengine 172.29.139.155 cm de191be75c99 docker_cm_1 172.29.131.131 docker_xconnect-automationengine_1 e3958cc49df3 xconnect-automationengine 172.29.140.210 4cb4854bfc7d docker_xconnect_1 xconnect 172.29.140.131 75b2fe2f3928 docker_xconnect-indexworker_1 xconnect-indexworker 172.29.130.141 5a5f504cb5f7 docker_sql_1 sql 172.29.142.253 0add1137f154 docker_solr_1 solr # whales-names end
Don't forget to terminate/close when you are done.
Last but very important. You need to set "basic-company" to your favourite instance in the hosts file.
172.29.139.155 cm de191be75c99 docker_cm_1 basic-company
Solution changes
To make the transition (from Sitecore 9.2 to Sitecore 9.3) to be as painless as possible. I’ve added a new “props” in the Build folder, Website.AssemblyVersionsProperties.props. It’s a variable that is used all over the solution to get the correct Sitecore version:
<Project> <PropertyGroup> <SitecoreVersion>9.3.0</SitecoreVersion> </PropertyGroup> </Project>
It’s included in the Directory.Build.props:
<Project> <Import Project="Build/props/Website.AssemblyVersionsProperties.props" /> <Import Project="Build/props/Website.Publishing.props" /> <Import Project="Build/props/Website.Publishing.props.user" Condition="exists('$(SolutionDir)/Build/props/Website.Publishing.props.user')" /> <Import Project="Build/props/Website.BuildProperties.props" /> <Import Project="Build/props/Website.References.props" /> <Import Project="Build/props/Website.ProjectContent.props" /> </Project>
Here you can see how it’s used in the BasicCompany.Feature.BasicContent.csproj:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net472</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Sitecore.Kernel" Version="$(SitecoreVersion)"> <PrivateAssets>all</PrivateAssets> </PackageReference> <PackageReference Include="Sitecore.Mvc" Version="$(SitecoreVersion)"> <PrivateAssets>all</PrivateAssets> </PackageReference> </ItemGroup> <ItemGroup> <ProjectReference Include="..\..\..\Foundation\FieldRendering\website\BasicCompany.Foundation.FieldRendering.csproj" /> </ItemGroup> </Project>
There was one hiccup when I did the upgrade, it’s in the Project.BasicCompany.config
The Sitecore.Publishing.HtmlCacheClearer is no more in Sitecore 9.3
SmartHtmlCacheClearer is still there, perhaps we can use that one instead?
For now, I commented out the part that clears the cache:
<?xml version="1.0"?> <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/"> <sitecore> <sites> <site name="basic-company" inherits="website" hostName="basic-company" rootPath="/sitecore/content/Basic Company" dictionaryDomain="{B741B17B-67B2-4DD8-A216-D092813871F0}" patch:before="site[@name='website']" /> </sites> <!-- Sitecore.Publishing.HtmlCacheClearer is no more Sitecore 9.3.0 Use SmartHtmlCacheClearer instead? <events> <event name="publish:end"> <handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache"> <sites hint="list"> <site hint="basic-company">basic-company</site> </sites> </handler> </event> <event name="publish:end:remote"> <handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache"> <sites hint="list"> <site hint="basic-company">basic-company</site> </sites> </handler> </event> </events>--> <settings> <setting name="Media.RequestExtension" set:value="" /> <setting name="Media.RequestProtection.SharedSecret" set:value="CA972DAE5E21D2D65C945DD21D489" /> </settings> </sitecore> </configuration>
Now you can run Helix.Examples in Sitecore 9.3 π
If you have any issues, just ping me and I will try to help/guide you. The ongoing work happens in https://github.com/GoranHalvarsson/Helix.Examples/tree/master/examples/helix-basic-tds-with-docker-vs2019-project-type
Thatβs all for now folks π
`
Why do you make portmapping (- “44010:1433”) on SQL and Solr in Docker Compose? Aren’t those services talking to each other over internal network of DC?
LikeLike
Good question, its from the Sitecore Docker Images repository at github. I suggest you ask them
LikeLike