Build your own Docker images out of every released Sitecore version since 8.2 rev. 170407 (Update 3) - the first version that officially supported Windows Server 2016. You can use this repository (preferably from a fork so you are in control of updates) from you own build server and have it build and push images to your private Docker repository.
There are some more background and details in this post: https://invokecommand.net/posts/automatically-build-and-update-base-images.
- [Changed] Restructured Sitecore 9.1.0 XM1 CM/CD/base docker files to use multi-stage builds, number of layers reduced from 25 to 13 and the size is also reduced to 5.06 GB.
- [Added] Sitecore 9.1.0 XM1 CM/CD, SQL Developer on ltsc2019 and Solr (7.2.1) on 1809. Please note the new XM1 specific tags for SQL and Solr.
- [Changed] Updated Sitecore 9.0.1, 9.0.2 Solr images to latest patch release: 6.6.3.
- [Changed] Updated openjdk base images used for Solr to latest version: java-1.8.0-openjdk-1.8.0.191-1.b12.
- [Added] Sitecore 9.0.2 XM1 CM/CD, SQL Developer on ltsc2019 and Solr on 1809.
- [Changed] Migrated Microsoft base images to use the new official registry "mcr.microsoft.com".
- [Added] Sitecore 8.2.180406 Solr on nanoserver-1803.
- [Added] Sitecore 8.2.180406 SQL Developer on windowsservercore-1803.
- [Added] CD, CM, Processing and Reporting roles to Sitecore 8.2.180406 on windowsservercore-1803.
- [Added] Sitecore 8.2.* on windowsservercore-1803.
- [Added] Sitecore 9.0.2 XM1 CM/CD, SQL Developer and Solr on 1803.
- [Added] Sitecore 9.0.1 on windowsservercore-1803.
- [Added] Sitecore 9.0.1 Solr on nanoserver-1803.
- [Added] Sitecore 9.0.1 SQL Developer on windowsservercore-1803.
- [Added] Sitecore 9.0.1 Solr on windowsservercore-1709.
- [Added] Sitecore 9.0.1 SQL Developer on windowsservercore-1709.
- [Breaking] Restructured versions and tags to support multiple Windows channels (ltsc2016, 1709, 1803 etc), there are now more repositories per version, one for each topology/role. See Tags and Windows versions.
- [Breaking] Decoupled image tags from structure by specifying full tag in "build.json".
- [Added] Sitecore 8.2 Update 7.
- [Fixed] Added UrlRewrite outbound rule to handle Sitecore redirect after login when container is running on another port than 80 (possible in Windows 10 1803).
- [Fixed] Solr build errors regarding downloads from github (TLS 1.2 now used).
- [Added] Specialized Solr image with all Sitecore cores embedded and volume support, for Sitecore 9.0.1 (which defaults to use Solr).
- [Added] Specialized SQL Server images with all Sitecore databases embedded and volume support, for Sitecore 9.
- [Changed] all Sitecore 9 images now default has connection strings matching the new specialized SQL Server images.
- [Added] XM1 CM and CD role images for Sitecore 9.
Version | Repository | OS | OS Version | Tag |
---|---|---|---|---|
9.1.001564 | sitecore-xm1-sqldev | windowsservercore | ltsc2019 | sitecore-xm1-sqldev:9.1.001564-windowsservercore-ltsc2019 Dockerfile |
9.1.001564 | sitecore-xm1-cm | windowsservercore | ltsc2019 | sitecore-xm1-cm:9.1.001564-windowsservercore-ltsc2019 Dockerfile |
9.1.001564 | sitecore-base | windowsservercore | ltsc2019 | sitecore-base:9.1.001564-windowsservercore-ltsc2019 Dockerfile |
9.1.001564 | sitecore-xm1-solr | nanoserver | 1809 | sitecore-xm1-solr:9.1.001564-nanoserver-1809 Dockerfile |
9.0.180604 | sitecore-xm1-cm | windowsservercore | ltsc2019 | sitecore-xm1-cm:9.0.180604-windowsservercore-ltsc2019 Dockerfile |
9.0.180604 | sitecore-xm1-cd | windowsservercore | ltsc2019 | sitecore-xm1-cd:9.0.180604-windowsservercore-ltsc2019 Dockerfile |
9.0.180604 | sitecore-sqldev | windowsservercore | ltsc2019 | sitecore-sqldev:9.0.180604-windowsservercore-ltsc2019 Dockerfile |
9.0.180604 | sitecore-base | windowsservercore | ltsc2019 | sitecore-base:9.0.180604-windowsservercore-ltsc2019 Dockerfile |
9.0.180604 | sitecore-solr | nanoserver | 1809 | sitecore-solr:9.0.180604-nanoserver-1809 Dockerfile |
9.0.180604 | sitecore-xm1-cm | windowsservercore | 1803 | sitecore-xm1-cm:9.0.180604-windowsservercore-1803 Dockerfile |
9.0.180604 | sitecore-xm1-cd | windowsservercore | 1803 | sitecore-xm1-cd:9.0.180604-windowsservercore-1803 Dockerfile |
9.0.180604 | sitecore-sqldev | windowsservercore | 1803 | sitecore-sqldev:9.0.180604-windowsservercore-1803 Dockerfile |
9.0.180604 | sitecore-solr | nanoserver | 1803 | sitecore-solr:9.0.180604-nanoserver-1803 Dockerfile |
9.0.180604 | sitecore-base | windowsservercore | 1803 | sitecore-base:9.0.180604-windowsservercore-1803 Dockerfile |
9.0.171219 | sitecore-sqldev | windowsservercore | ltsc2016 | sitecore-sqldev:9.0.171219-windowsservercore-ltsc2016 Dockerfile |
9.0.171219 | sitecore-solr | nanoserver | ltsc2016 | sitecore-solr:9.0.171219-nanoserver-ltsc2016 Dockerfile |
9.0.171219 | sitecore-xm1-cm | windowsservercore | 1803 | sitecore-xm1-cm:9.0.171219-windowsservercore-1803 Dockerfile |
9.0.171219 | sitecore-xm1-cd | windowsservercore | 1803 | sitecore-xm1-cd:9.0.171219-windowsservercore-1803 Dockerfile |
9.0.171219 | sitecore-sqldev | windowsservercore | 1803 | sitecore-sqldev:9.0.171219-windowsservercore-1803 Dockerfile |
9.0.171219 | sitecore-solr | nanoserver | 1803 | sitecore-solr:9.0.171219-nanoserver-1803 Dockerfile |
9.0.171219 | sitecore-base | windowsservercore | 1803 | sitecore-base:9.0.171219-windowsservercore-1803 Dockerfile |
9.0.171219 | sitecore-xm1-cm | windowsservercore | 1709 | sitecore-xm1-cm:9.0.171219-windowsservercore-1709 Dockerfile |
9.0.171219 | sitecore-xm1-cd | windowsservercore | 1709 | sitecore-xm1-cd:9.0.171219-windowsservercore-1709 Dockerfile |
9.0.171219 | sitecore-sqldev | windowsservercore | 1709 | sitecore-sqldev:9.0.171219-windowsservercore-1709 Dockerfile |
9.0.171219 | sitecore-solr | nanoserver | 1709 | sitecore-solr:9.0.171219-nanoserver-1709 Dockerfile |
9.0.171219 | sitecore-base | windowsservercore | 1709 | sitecore-base:9.0.171219-windowsservercore-1709 Dockerfile |
9.0.171002 | sitecore-sqldev | windowsservercore | ltsc2016 | sitecore-sqldev:9.0.171002-windowsservercore-ltsc2016 Dockerfile |
9.0.171002 | sitecore-xm1-cm | windowsservercore | 1709 | sitecore-xm1-cm:9.0.171002-windowsservercore-1709 Dockerfile |
9.0.171002 | sitecore-xm1-cd | windowsservercore | 1709 | sitecore-xm1-cd:9.0.171002-windowsservercore-1709 Dockerfile |
9.0.171002 | sitecore-base | windowsservercore | 1709 | sitecore-base:9.0.171002-windowsservercore-1709 Dockerfile |
8.2.180406 | sitecore-sqldev | windowsservercore | 1803 | sitecore-sqldev:8.2.180406-windowsservercore-1803 Dockerfile |
8.2.180406 | sitecore-solr | nanoserver | 1803 | sitecore-solr:8.2.180406-nanoserver-1803 Dockerfile |
8.2.180406 | sitecore-reporting | windowsservercore | 1803 | sitecore-reporting:8.2.180406-windowsservercore-1803 Dockerfile |
8.2.180406 | sitecore-processing | windowsservercore | 1803 | sitecore-processing:8.2.180406-windowsservercore-1803 Dockerfile |
8.2.180406 | sitecore-cm | windowsservercore | 1803 | sitecore-cm:8.2.180406-windowsservercore-1803 Dockerfile |
8.2.180406 | sitecore-cd | windowsservercore | 1803 | sitecore-cd:8.2.180406-windowsservercore-1803 Dockerfile |
8.2.180406 | sitecore | windowsservercore | 1803 | sitecore:8.2.180406-windowsservercore-1803 Dockerfile |
8.2.180406 | sitecore | windowsservercore | 1709 | sitecore:8.2.180406-windowsservercore-1709 Dockerfile |
8.2.171121 | sitecore | windowsservercore | 1803 | sitecore:8.2.171121-windowsservercore-1803 Dockerfile |
8.2.171121 | sitecore | windowsservercore | 1709 | sitecore:8.2.171121-windowsservercore-1709 Dockerfile |
8.2.170728 | sitecore | windowsservercore | 1803 | sitecore:8.2.170728-windowsservercore-1803 Dockerfile |
8.2.170728 | sitecore | windowsservercore | 1709 | sitecore:8.2.170728-windowsservercore-1709 Dockerfile |
8.2.170614 | sitecore | windowsservercore | 1803 | sitecore:8.2.170614-windowsservercore-1803 Dockerfile |
8.2.170614 | sitecore | windowsservercore | 1709 | sitecore:8.2.170614-windowsservercore-1709 Dockerfile |
8.2.170407 | sitecore | windowsservercore | 1803 | sitecore:8.2.170407-windowsservercore-1803 Dockerfile |
8.2.170407 | sitecore | windowsservercore | 1709 | sitecore:8.2.170407-windowsservercore-1709 Dockerfile |
8 | sitecore-openjdk | nanoserver | 1809 | sitecore-openjdk:8-nanoserver-1809 Dockerfile |
8 | sitecore-openjdk | nanoserver | 1803 | sitecore-openjdk:8-nanoserver-1803 Dockerfile |
8 | sitecore-openjdk | nanoserver | 1709 | sitecore-openjdk:8-nanoserver-1709 Dockerfile |
This repository now supports multiple Windows versions and support channels ie. "ltsc2016", "1709" and "1803". Read more about Windows Container Version Compatibility.
Here is the convention used when tagging images:
registry.example.com/sitecore-xm1-cm:9.0.171219-windowsservercore-1709
\__________________/ \_____________/ \________/ \____________________/
| | | |
registry/org/user repository sc version os version
Please note that the
sc version
part of the tags matches the corresponding NuGet package version for a given Sitecore version and not the "marketing version" ie 9.0.1, 9.0.2 etc. This is to make it clear in the implementing projects which NuGet package versions goes with which tags.
- A private Docker repository. Any will do, but the easiest is to use a Azure Container Registry or to sign-up for a private plan on https://hub.docker.com, you need at least the "Small" plan at $12/mo.
- A file share that your build agents can reach, where you have placed zip files downloaded from https://dev.sitecore.net/ and your license.xml.
- Some kind of build server for example TeamCity, with agents that runs:
- Windows 10 or Windows Server 2016 that is up to date and on latest build.
- Hyper-V and Containers Windows features installed.
- Latest stable Docker engine and cli.
- Trigger a build on changes to this git repository - to get new versions.
- Trigger once a week - to get base images updated when Microsoft releases patched images.
Example:
# Login
"YOUR DOCKER REPOSITORY PASSWORD" | docker login --username "YOUR DOCKER REPOSITORY USERNAME" --password-stdin
# Load module
Import-Module (Join-Path $PSScriptRoot "\modules\SitecoreImageBuilder") -Force
# Build and push
SitecoreImageBuilder\Invoke-Build `
-Path (Join-Path $PSScriptRoot "\images") `
-InstallSourcePath "PATH TO WHERE YOU KEEP ALL SITECORE ZIP FILES AND LICENSE.XML" `
-Registry "YOUR REGISTRY NAME" ` # On Docker Hub it's your username or organization, else it's the DNS to your private registry.
-Tags "*" ` # optional (default "*"), set to for example "sitecore-openjdk:*-1803", "sitecore-*:9.0.1*1803" to only build 9.0.x images on 1803.
-PushMode "WhenChanged" # optional (default "WhenChanged"), can also be "Never" or "Always".