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


More Posts