Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
docker-examples/custom-images/init.ps1
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
136 lines (109 sloc)
5.13 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[CmdletBinding()] | |
Param ( | |
[Parameter(Mandatory = $true)] | |
[string] | |
[ValidateNotNullOrEmpty()] | |
$LicenseXmlPath, | |
[string] | |
$HostName = "dockerexamples", | |
# We do not need to use [SecureString] here since the value will be stored unencrypted in .env, | |
# and used only for transient local example environment. | |
[string] | |
$SitecoreAdminPassword = "Password12345", | |
# We do not need to use [SecureString] here since the value will be stored unencrypted in .env, | |
# and used only for transient local example environment. | |
[string] | |
$SqlSaPassword = "Password12345" | |
) | |
$ErrorActionPreference = "Stop"; | |
if (-not (Test-Path $LicenseXmlPath)) { | |
throw "Did not find $LicenseXmlPath" | |
} | |
if (-not (Test-Path $LicenseXmlPath -PathType Leaf)) { | |
throw "$LicenseXmlPath is not a file" | |
} | |
# Check for Sitecore Gallery | |
Import-Module PowerShellGet | |
$SitecoreGallery = Get-PSRepository | Where-Object { $_.SourceLocation -eq "https://sitecore.myget.org/F/sc-powershell/api/v2" } | |
if (-not $SitecoreGallery) { | |
Write-Host "Adding Sitecore PowerShell Gallery..." -ForegroundColor Green | |
Register-PSRepository -Name SitecoreGallery -SourceLocation https://sitecore.myget.org/F/sc-powershell/api/v2 -InstallationPolicy Trusted | |
$SitecoreGallery = Get-PSRepository -Name SitecoreGallery | |
} | |
# Install and Import SitecoreDockerTools | |
$dockerToolsVersion = "10.2.7" | |
Remove-Module SitecoreDockerTools -ErrorAction SilentlyContinue | |
if (-not (Get-InstalledModule -Name SitecoreDockerTools -RequiredVersion $dockerToolsVersion -ErrorAction SilentlyContinue)) { | |
Write-Host "Installing SitecoreDockerTools..." -ForegroundColor Green | |
Install-Module SitecoreDockerTools -RequiredVersion $dockerToolsVersion -Scope CurrentUser -Repository $SitecoreGallery.Name | |
} | |
Write-Host "Importing SitecoreDockerTools..." -ForegroundColor Green | |
Import-Module SitecoreDockerTools -RequiredVersion $dockerToolsVersion | |
Write-SitecoreDockerWelcome | |
############################### | |
# Populate the environment file | |
############################### | |
Write-Host "Populating required .env file variables..." -ForegroundColor Green | |
# SITECORE_ADMIN_PASSWORD | |
Set-EnvFileVariable "SITECORE_ADMIN_PASSWORD" -Value $SitecoreAdminPassword | |
# SQL_SA_PASSWORD | |
Set-EnvFileVariable "SQL_SA_PASSWORD" -Value $SqlSaPassword | |
# CD_HOST | |
Set-EnvFileVariable "CD_HOST" -Value "cd.$($HostName).localhost" | |
# CM_HOST | |
Set-EnvFileVariable "CM_HOST" -Value "cm.$($HostName).localhost" | |
# ID_HOST | |
Set-EnvFileVariable "ID_HOST" -Value "id.$($HostName).localhost" | |
# HRZ_HOST | |
Set-EnvFileVariable "HRZ_HOST" -Value "hrz.$($HostName).localhost" | |
# REPORTING_API_KEY = random 64-128 chars | |
Set-EnvFileVariable "REPORTING_API_KEY" -Value (Get-SitecoreRandomString 64 -DisallowSpecial) | |
# TELERIK_ENCRYPTION_KEY = random 64-128 chars | |
Set-EnvFileVariable "TELERIK_ENCRYPTION_KEY" -Value (Get-SitecoreRandomString 128) | |
# MEDIA_REQUEST_PROTECTION_SHARED_SECRET | |
Set-EnvFileVariable "MEDIA_REQUEST_PROTECTION_SHARED_SECRET" -Value (Get-SitecoreRandomString 64) | |
# SITECORE_IDSECRET = random 64 chars | |
Set-EnvFileVariable "SITECORE_IDSECRET" -Value (Get-SitecoreRandomString 64 -DisallowSpecial) | |
# SITECORE_ID_CERTIFICATE | |
$idCertPassword = Get-SitecoreRandomString 12 -DisallowSpecial | |
Set-EnvFileVariable "SITECORE_ID_CERTIFICATE" -Value (Get-SitecoreCertificateAsBase64String -DnsName "localhost" -Password (ConvertTo-SecureString -String $idCertPassword -Force -AsPlainText)) | |
# SITECORE_ID_CERTIFICATE_PASSWORD | |
Set-EnvFileVariable "SITECORE_ID_CERTIFICATE_PASSWORD" -Value $idCertPassword | |
# SITECORE_LICENSE | |
Set-EnvFileVariable "SITECORE_LICENSE" -Value (ConvertTo-CompressedBase64String -Path $LicenseXmlPath) | |
################################## | |
# Configure TLS/HTTPS certificates | |
################################## | |
Push-Location docker\traefik\certs | |
try { | |
$mkcert = ".\mkcert.exe" | |
if ($null -ne (Get-Command mkcert.exe -ErrorAction SilentlyContinue)) { | |
# mkcert installed in PATH | |
$mkcert = "mkcert" | |
} elseif (-not (Test-Path $mkcert)) { | |
Write-Host "Downloading and installing mkcert certificate tool..." -ForegroundColor Green | |
Invoke-WebRequest "https://github.com/FiloSottile/mkcert/releases/download/v1.4.1/mkcert-v1.4.1-windows-amd64.exe" -UseBasicParsing -OutFile mkcert.exe | |
if ((Get-FileHash mkcert.exe).Hash -ne "1BE92F598145F61CA67DD9F5C687DFEC17953548D013715FF54067B34D7C3246") { | |
Remove-Item mkcert.exe -Force | |
throw "Invalid mkcert.exe file" | |
} | |
} | |
Write-Host "Generating Traefik TLS certificate..." -ForegroundColor Green | |
& $mkcert -install | |
& $mkcert -key-file key.pem -cert-file cert.pem "*.$($HostName).localhost" | |
} | |
catch { | |
Write-Host "An error occurred while attempting to generate TLS certificate: $_" -ForegroundColor Red | |
} | |
finally { | |
Pop-Location | |
} | |
################################ | |
# Add Windows hosts file entries | |
################################ | |
Write-Host "Adding Windows hosts file entries..." -ForegroundColor Green | |
Add-HostsEntry "cd.$($HostName).localhost" | |
Add-HostsEntry "cm.$($HostName).localhost" | |
Add-HostsEntry "id.$($HostName).localhost" | |
Add-HostsEntry "hrz.$($HostName).localhost" | |
Write-Host "Done!" -ForegroundColor Green |