Expected behavior
Spin up a Windows VM in Azure running Windows Server 2016. Install docker. Run the dockerfile listed below. it works. This worked a month ago I think.
Actual behavior
.\setup\sqlexpress.exe : The term '.\setup\sqlexpress.exe' is not recognized
as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is
correct and try again.
At line:1 char:328
+ ... press.exe -ArgumentList /qs, /x:setup; .\setup\sqlexpress.exe /q /ACT ...
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (.\setup\sqlexpress.exe:String)
[], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : CommandNotFoundException
EventID : 26
MachineName : 9a09e0a0ac1f
Index : 1173
Category : (0)
CategoryNumber : 0
EntryType : Information
Message : CriticalAppShutdownCleanupTimeout
Source : Application Popup
ReplacementStrings : {sqlexpress.exe - Entry Point Not Found, The procedure entry point NtLoadKey3 could not be
located in the dynamic link library C:\Windows\System32\wow64.dll. }
InstanceId : 26
TimeGenerated : 8/4/2020 3:58:34 PM
TimeWritten : 8/4/2020 3:58:34 PM
UserName : NT AUTHORITY\SYSTEM
Site :
Container :
Information
PS C:\temp\docker2> docker version
Client: Docker Engine - Enterprise
Version: 19.03.11
API version: 1.40
Go version: go1.13.11
Git commit: 0da829ac52
Built: 06/26/2020 17:20:46
OS/Arch: windows/amd64
Experimental: false
Server: Docker Engine - Enterprise (Unlicensed - not for production workloads)
Engine:
Version: 19.03.11
API version: 1.40 (minimum version 1.24)
Go version: go1.13.11
Git commit: 0da829ac52
Built: 06/26/2020 17:19:32
OS/Arch: windows/amd64
Experimental: false
Steps to reproduce the behavior
Spin up a windows server 2016 server in azure. install hyperv and containers features. reboot. install docker reboot. run this docker file.
FROM mcr.microsoft.com/dotnet/framework/sdk:3.5
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
ENV attach_dbs="[]" \
ACCEPT_EULA="_" \
sqlUsername="***" \
sqlPassword="***" \
sqlServer=".\sqlexpress"
RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/?linkid=829176" -OutFile sqlexpress.exe; \
Start-Process -Wait -FilePath .\sqlexpress.exe -ArgumentList /qs, /x:setup; \
.\setup\sqlexpress.exe /q /ACTION=Install /INSTANCENAME=SQLEXPRESS /FEATURES=SQLEngine /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\System' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS; \
Remove-Item -Recurse -Force sqlexpress.exe, setup
To get the event log, I started the bare docker container and ran the last step by hand in powershell. The sqlexpress.exe step does not create the setup directory and the event information above is put in the event log.