How to Run Sitecore 10.3.x in Docker on Windows 10

> Configs for loading useful asset images
Cover Image for How to Run Sitecore 10.3.x in Docker on Windows 10

I wanted to load these asset images on Windows 10, but I didn't find any examples online:

  • sitecore-docker-tools-assets: general Sitecore container tools and utilities
  • sitecore-spe-assets: PowerShell automation via Sitecore PowerShell Extensions
  • sitecore-management-services-xm1-assets: management services

First start by getting the SXP Sitecore Container Deployment 10.3 from Github: https://github.com/Sitecore/container-deployment/releases/tag/10.3.1.009452.1563

In the .zip, you will find two folders: ltsc2019 and ltsc2022.

While the example files provided are good, there are a few more asset images that are worth loading: sitecore-docker-tools-assets, sitecore-spe-assets, and sitecore-management-services-xm1-assets.

Certain images, such as modules, are intended only as a source during your custom Sitecore image build and you never use them at runtime. These asset images are named accordingly with a -assets suffix.

Below is an incomplete .env file for reference:

REGISTRY=scr.sitecore.com/sxp/
SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/
SITECORE_MODULE_REGISTRY=scr.sitecore.com/sxp/modules/
SITECORE_TOOLS_REGISTRY=scr.sitecore.com/tools/
SITECORE_VERSION=10.3-ltsc2019
EXTERNAL_IMAGE_TAG_SUFFIX=ltsc2019
TOOLS_VERSION=10.3.0-1809
SPE_VERSION=6.4.0.65-1809
MANAGEMENT_SERVICES_VERSION=5.2.113-1809

Now consume the environment variables in docker-compose.yml:

version: "2.4"
services:
traefik:
command:
- "--ping"
- "--api.insecure=true"
- "--providers.docker.endpoint=npipe:////./pipe/docker_engine"
- "--providers.docker.exposedByDefault=false"
- "--providers.file.directory=C:/etc/traefik/config/dynamic"
- "--entryPoints.websecure.address=:443"
- "--entryPoints.web.address=:80"
ports:
- "8080:80"
volumes:
- source: \\.\pipe\docker_engine
target: \\.\pipe\docker_engine
type: npipe
- ./traefik:C:/etc/traefik
depends_on:
id:
condition: service_healthy
cm:
condition: service_healthy
mssql:
mem_limit: ${MEM_LIMIT_SQL:-2GB}
volumes:
- .\data\mssql:c:\data
restart: unless-stopped
mssql-init:
image: ${REGISTRY}${COMPOSE_PROJECT_NAME}-xp1-mssql-init:${VERSION:-latest}
build:
context: ./build/mssql-init
args:
BASE_IMAGE: ${SITECORE_DOCKER_REGISTRY}sitecore-xp1-mssql-init:${SITECORE_VERSION}
SPE_IMAGE: ${SITECORE_MODULE_REGISTRY}sitecore-spe-assets:${SPE_VERSION}
solr:
volumes:
- .\data\solr:c:\data
solr-init:
image: sxp/sitecore-xp1-solr-init:10.3.2-ltsc2019
build:
context: ./build/solr-init
args:
BASE_IMAGE: ${SITECORE_DOCKER_REGISTRY}sitecore-xp1-solr-init:${SITECORE_VERSION}
cm:
image: ${REGISTRY}${COMPOSE_PROJECT_NAME}-xp0-cm:${SITECORE_VERSION}
build:
context: ./build/cm
args:
BASE_IMAGE: ${SITECORE_DOCKER_REGISTRY}sitecore-xp0-cm:${SITECORE_VERSION}
TOOLING_IMAGE: ${SITECORE_TOOLS_REGISTRY}sitecore-docker-tools-assets:${TOOLS_VERSION}
SPE_IMAGE: ${SITECORE_MODULE_REGISTRY}sitecore-spe-assets:${SPE_VERSION}
MANAGEMENT_SERVICES_IMAGE: ${SITECORE_MODULE_REGISTRY}sitecore-management-services-xm1-assets:${MANAGEMENT_SERVICES_VERSION}
environment:
SITECORE_LICENSE_LOCATION: C:\license\license.xml
volumes:
- .\data\cm\website:C:\deploy
- .\serialization:C:\serialization
- .\data\cm\logs:C:\inetpub\wwwroot\App_Data\logs
- .\data\cm\LmapProcessFiles:C:\inetpub\wwwroot\App_Data\LmapProcessFiles
- ${LICENSE_PATH}:C:\license
entrypoint: powershell -Command "& C:\\tools\\entrypoints\\iis\\Development.ps1"
mem_limit: ${MEM_LIMIT_CM:-4GB}
restart: unless-stopped
labels:
- "traefik.http.middlewares.redirect-to-https.redirectScheme.scheme=https"
- "traefik.http.routers.cm.entrypoints=web"
- "traefik.http.routers.cm.middlewares=redirect-to-https"
cd:
image: ${REGISTRY}${COMPOSE_PROJECT_NAME}-xp0-cd:${SITECORE_VERSION}
build:
context: ./build/cd
args:
BASE_IMAGE: ${SITECORE_DOCKER_REGISTRY}sitecore-xp1-cd:${SITECORE_VERSION}
TOOLING_IMAGE: ${SITECORE_TOOLS_REGISTRY}sitecore-docker-tools-assets:${TOOLS_VERSION}
environment:
SITECORE_LICENSE_LOCATION: C:\license\license.xml
volumes:
- .\data\cd\website:C:\deploy
- .\data\cd\logs:C:\inetpub\wwwroot\App_Data\logs
- ${LICENSE_PATH}:C:\license
entrypoint: powershell -Command "& C:\\tools\\entrypoints\\iis\\Development.ps1"
mem_limit: ${MEM_LIMIT_CM:-4GB}
restart: unless-stopped
labels:
- "traefik.http.middlewares.redirect-to-https.redirectScheme.scheme=https"
- "traefik.http.routers.cd.entrypoints=web"
- "traefik.http.routers.cd.rule=Host(`${CD_HOST}`) || Host(`asm-${CD_HOST}`) "
- "traefik.http.routers.cd.middlewares=redirect-to-https"
id:
environment:
SITECORE_LICENSE_LOCATION: C:\license\license.xml
volumes:
- ${LICENSE_PATH}:C:\license
xconnect:
image: ${REGISTRY}${COMPOSE_PROJECT_NAME}-xp0-xconnect:${SITECORE_VERSION}
build:
context: ./build/xconnect
args:
BASE_IMAGE: ${SITECORE_DOCKER_REGISTRY}sitecore-xp0-xconnect:${SITECORE_VERSION}
TOOLING_IMAGE: ${SITECORE_TOOLS_REGISTRY}sitecore-docker-tools-assets:${TOOLS_VERSION}
environment:
SITECORE_LICENSE_LOCATION: C:\license
volumes:
- .\data\xconnect:C:\deploy
- ${LICENSE_PATH}:C:\license
entrypoint: powershell -Command "& C:\\tools\\entrypoints\\iis\\Development.ps1"
xdbsearchworker:
environment:
SITECORE_LICENSE_LOCATION: C:\license
volumes:
- ${LICENSE_PATH}:C:\license
xdbautomationworker:
environment:
SITECORE_LICENSE_LOCATION: C:\license
volumes:
- ${LICENSE_PATH}:C:\license
cortexprocessingworker:
environment:
SITECORE_LICENSE_LOCATION: C:\license
volumes:
- ${LICENSE_PATH}:C:\license

Here is a useful resource which provides a comprehensive list of Sitecore Docker image tags:

https://raw.githubusercontent.com/Sitecore/docker-images/master/tags/sitecore-tags.md

May the container gods have mercy on your soul.

-MG

I chose these words

More Posts

Cover Image for Add TypeScript Type Checks to RouteData fields

Add TypeScript Type Checks to RouteData fields

> Inspired by error: Conversion of type may be a mistake because neither type sufficiently overlaps with the other.

Cover Image for One Key Trick for Building Bulletproof Components That Work in Pages Editor

One Key Trick for Building Bulletproof Components That Work in Pages Editor

> Developers face the same key challenge when building for Pages as they did for the Experience Editor

Cover Image for Long File Paths and SitecoreAI Deployments

Long File Paths and SitecoreAI Deployments

> Develop with 260 characters in mind