Repository of Sitecore Docker images
Build your own Docker images for the most recent versions of Sitecore. See IMAGES.md for all images currently available. You can also use this repository (preferably from a fork) from you own build server and have it build and push images to your own private Docker registry.
Jump to the How to use section to get started.
IMPORTANT NOTES ABOUT THIS REPOSITORY
- This repository was created to help consolidate efforts around Sitecore and Docker.
- The code and examples found in this repository are created and maintained by the Community, unsupported by Sitecore.
- Official statement from Sitecore on running in containers, see https://kb.sitecore.net/articles/161310.
Please see CHANGELOG.md.
List of all images
Please see IMAGES.md.
Tagging and Windows versions
This repository can build multiple Windows versions. Read more about Windows Container Version Compatibility.
Here is the convention used for Sitecore image tags:
registry.example.com/sitecore-xm-cm:9.2.0-windowsservercore-1903 \__________________/ \____________/ \___/ \____________________/ | | | | registry/org/user repository sc version os version
How to use
.\Build.ps1 -SitecoreUsername "YOUR dev.sitecore.net USERNAME" -SitecorePassword "YOUR dev.sitecore.net PASSWORD"
- Download any missing packages into
.\packages, if you have another location with files already present you can call
Build.ps1with the parameter
- Build all images of latest Sitecore version on latest LTSC (Long Term Support Channel) Windows version.
Images will always be saved locally but not pushed to any remote registries by default. See Setting up automated builds for details on how to do this.
- Place your Sitecore license file at
C:\license\license.xml, or override location using the environment variable
- Then run any of the docker-compose files, for example an XM with:
docker-compose --file .\windows\tests\9.x.x\docker-compose.xm.yml up
Setting up automated builds
- A private Docker repository. Any will do, but the easiest is to use a Azure Container Registry.
- A file location that your build agents can reach to store downloads from https://dev.sitecore.net/.
- Latest Windows 10 or Windows Server 2019 with Hyper-V and Containers features installed.
- Latest stable Docker engine and cli.
- PowerShell Core so you can use the PowerShell module.
- Latest stable Docker engine and cli.
Configure your build server
- Trigger a build on changes to
master- to get new versions.
- Trigger once a week - to get base images updated when Microsoft releases patched images.
# required, change if you need to build images in other folders such as ".\linux" or ".\legacy" $imagesPath = (Join-Path $PSScriptRoot "\windows") # optional, default value is ".\packages". Can be on local machine or a file share. $installSourcePath = (Join-Path $PSScriptRoot "\packages") # optional, on Docker Hub it's your username or organization, else it's the hostname of your # own registry. This parameter is optional but you will not be able to push images to a # remote registry without. # # PLEASE NOTE: DO NOT SPECIFY A PUBLIC REGISTRY! # $registry = "YOUR REGISTRY NAME" ` # optional, default value is the latest Sitecore version on latest LTSC version # of Windows. Set to for example "*" for build everything or "*:9.1.1*1903", "*:9.2.0*1903" to # only build 9.1.1 and 9.2.0 on Windows 1903. $tags = "*" # required $sitecoreUsername = "YOUR dev.sitecore.net USERNAME" # required $sitecorePassword = "YOUR dev.sitecore.net PASSWORD" # import builder module Import-Module (Join-Path $PSScriptRoot "\modules\SitecoreImageBuilder") -Force # restore packages needed for the build, only files missing in $installSourcePath will be downloaded SitecoreImageBuilder\Invoke-PackageRestore ` -Path $imagesPath ` -Destination $installSourcePath ` -Tags $tags ` -SitecoreUsername $sitecoreUsername ` -SitecorePassword $sitecorePassword # build and push images SitecoreImageBuilder\Invoke-Build ` -Path $imagesPath ` -InstallSourcePath $installSourcePath ` -Registry $registry ` -Tags $tags