UPDATE: Das SQL Server-Team unterhält nun ein 2014 Express Bild auf Docker Hub: https://hub.docker.com/r/microsoft/mssql-server-2014-express-windows/
SQL Server 2016 wird derzeit ein wenig schwieriger zu installieren, aber 2014 funktioniert gut. Hier ist meine (etwas hacky) Dockerfile:
FROM microsoft/dotnet35
ENV SQL_EXPRESS_DOWNLOAD_URL "https://download.microsoft.com/download/1/5/6/156992E6-F7C7-4E55-833D-249BD2348138/ENU/x64/SQLEXPR_x64_ENU.exe"
ENV SQL_SERVER_SA_PASSWORD "Password1"
WORKDIR/
RUN powershell -Command (New-Object System.Net.WebClient).DownloadFile('%SQL_EXPRESS_DOWNLOAD_URL%', 'sqlexpress.exe')
RUN /sqlexpress.exe /qs /x:setup && /setup/setup.exe /q /ACTION=Install /INSTANCENAME=SQLEXPRESS /FEATURES=SQLEngine /UPDATEENABLED=0 /SECURITYMODE=SQL /SAPWD=%SQL_SERVER_SA_PASSWORD% /SQLSVCACCOUNT="NT AUTHORITY\System" /SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS" /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS && del /F /Q sqlexpress.exe && rd /q /s setup
RUN powershell -Command \
set-strictmode -version latest ; \
stop-service MSSQL`$SQLEXPRESS ; \
set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql12.SQLEXPRESS\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' ; \
set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql12.SQLEXPRESS\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpport -value 1433 ; \
start-service MSSQL`$SQLEXPRESS
CMD powershell -Command while ($true) { Start-Sleep -Seconds 3600 }
EXPOSE 1433
Es basiert auf dieser: https://github.com/brogersyh/Dockerfiles-for-windows/blob/master/sqlexpress/dockerfile
Ich schätze, wir können dies auf Mac, Ubuntu, etc ausführen? solange wir Docker Motor installiert haben? oder es erfordert einige andere MS-Abhängigkeiten? – Sobiaholic
@Sobioholic es erfordert einen Windows-Kernel und ein Windows Server 2016-System ausgeführt werden. Unter Linux oder Mac können Sie das in einer VM ausführen. – friism