From 381f150e2e7117c1fff11c00c6777d95420584c5 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Tue, 21 Nov 2023 11:49:06 -0600 Subject: [PATCH 01/26] Revert "Update README.md" This reverts commit 0afb42afa9055285da16460d764df81de8e58820. --- README.md | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6ede60a..f4b1fff 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,41 @@ -## Update - October 2023 -This project is retired. I no longer find it useful to use images of Microsoft SQL Server on Windows Server 2022 for Docker Engine. +[![version](https://img.shields.io/badge/docker%20last%20pushed-2023--09--18-blue)](https://hub.docker.com/repository/docker/cagrin/mssql-server-ltsc2022/tags) +[![docker stars](https://shields.io/docker/stars/cagrin/mssql-server-ltsc2022)](https://hub.docker.com/repository/docker/cagrin/mssql-server-ltsc2022) +[![docker pulls](https://shields.io/docker/pulls/cagrin/mssql-server-ltsc2022)](https://hub.docker.com/repository/docker/cagrin/mssql-server-ltsc2022) + + +## Featured Tags + +### Windows images only + +|Tags|Collation| +|--- |---| +|2022-latest
2019-latest
2017-latest
2016-latest
2014-latest
2012-latest|```SQL_Latin1_General_CP1_CI_AS```| +|2022-latest-pl
2019-latest-pl
2017-latest-pl
2016-latest-pl
2014-latest-pl
2012-latest-pl|```Polish_CI_AS``` | +|2022-latest-ua
2019-latest-ua
2017-latest-ua
2016-latest-ua
2014-latest-ua
2012-latest-ua|```Ukrainian_CI_AS``` | + +### SQL Server Developer Edition only + +|Tags prefix|Product|Version|Release date| +|--- |--- |--- |---| +|2022-latest...|SQL Server 2022 CU8|16.0.4075.1|2023-09-14| +|2019-latest...|SQL Server 2019 CU22|15.0.4322.2|2023-08-14| +|2017-latest...|SQL Server 2017 CU31|14.0.3460.9|2023-02-14| +|2016-latest...|SQL Server 2016 SP3|13.0.7024.30|2023-02-14| +|2014-latest...|SQL Server 2014 SP3 CU4|12.0.6444.4|2023-02-14| +|2012-latest...|SQL Server 2012 SP4|11.0.7507.2|2021-01-12| + +## Configuration +Requires the following environment flags: +- ```ACCEPT_EULA=Y``` +- ```MSSQL_SA_PASSWORD=``` + +## Build + +All images are based on [.NET Framework Runtime](https://hub.docker.com/_/microsoft-dotnet-framework-runtime) in particular: + +|Product|Base image|Release date| +|--- |--- |---| +|SQL Server 2022
SQL Server 2019
SQL Server 2017|mcr.microsoft.com/dotnet/framework/runtime:
4.8.1-20230808-windowsservercore-ltsc2022|2023-08-08| +|SQL Server 2016
SQL Server 2014
SQL Server 2012|mcr.microsoft.com/dotnet/framework/runtime:
3.5-20230808-windowsservercore-ltsc2022|2023-08-08| + +Built and tested on Windows 11 [Version 10.0.22000.2295]. From 13b5fd77a59ac685d8f7d8502524b5a254eed0c6 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Fri, 1 Dec 2023 13:29:12 -0600 Subject: [PATCH 02/26] playing around --- .github/workflows/build-and-publish.yml | 37 ++++++++++++++++++++ Dockerfile | 30 ++++++++++++++++ README.md | 19 ++-------- developer/2012-latest/dockerfile | 10 ------ developer/2014-latest/dockerfile | 10 ------ developer/2014-latest/start.ps1 | 32 ----------------- developer/2016-latest/dockerfile | 10 ------ developer/2016-latest/start.ps1 | 32 ----------------- developer/2017-latest/dockerfile | 10 ------ developer/2017-latest/start.ps1 | 32 ----------------- developer/2019-latest/dockerfile | 10 ------ developer/2019-latest/start.ps1 | 32 ----------------- developer/2022-latest/dockerfile | 10 ------ developer/2022-latest/start.ps1 | 32 ----------------- developer/build.ps1 | 11 ++---- developer/pull.ps1 | 11 ++---- developer/push.ps1 | 11 ++---- developer/test.ps1 | 9 +---- developer/2012-latest/start.ps1 => start.ps1 | 0 19 files changed, 76 insertions(+), 272 deletions(-) create mode 100644 .github/workflows/build-and-publish.yml create mode 100644 Dockerfile delete mode 100755 developer/2012-latest/dockerfile delete mode 100755 developer/2014-latest/dockerfile delete mode 100755 developer/2014-latest/start.ps1 delete mode 100755 developer/2016-latest/dockerfile delete mode 100755 developer/2016-latest/start.ps1 delete mode 100644 developer/2017-latest/dockerfile delete mode 100755 developer/2017-latest/start.ps1 delete mode 100644 developer/2019-latest/dockerfile delete mode 100755 developer/2019-latest/start.ps1 delete mode 100644 developer/2022-latest/dockerfile delete mode 100755 developer/2022-latest/start.ps1 rename developer/2012-latest/start.ps1 => start.ps1 (100%) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml new file mode 100644 index 0000000..df97e0f --- /dev/null +++ b/.github/workflows/build-and-publish.yml @@ -0,0 +1,37 @@ +name: Build and Publish Docker image +concurrency: build-${{ github.ref }} +on: + push: + branches: [ main ] + +permissions: + contents: read + packages: write + +jobs: + build-and-push-image: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v4 + with: + clean: true + lfs: true + submodules: true + + - uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: pangaeatech/mssql-server-ltsc2022:latest + build-args: | + 'SQLCOLLATION=$Collation' + 'SHARE_PATH="\\$IP\Public"' + 'SHARE_PASSWORD="A.794613"' + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e8c64bd --- /dev/null +++ b/Dockerfile @@ -0,0 +1,30 @@ +FROM microsoft/windowsservercore + +LABEL maintainer "Perry Skountrianos" + +# Download Links: +ENV exe "https://go.microsoft.com/fwlink/?linkid=2215158" + +ENV sa_password="_" \ + attach_dbs="[]" \ + ACCEPT_EULA="_" + +SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] + +# make install files accessible +COPY start.ps1 / +WORKDIR / + +RUN Invoke-WebRequest -Uri $env:exe -OutFile SQL.exe ; \ + Start-Process -Wait -FilePath .\SQL.exe -ArgumentList /qs, /x:setup ; \ + .\setup\setup.exe /q /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS ; \ + Remove-Item -Recurse -Force SQL.exe, setup + +RUN stop-service MSSQLSERVER ; \ + set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' ; \ + set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpport -value 1433 ; \ + set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\' -name LoginMode -value 2 ; + +HEALTHCHECK CMD [ "sqlcmd", "-Q", "select 1" ] + +CMD .\start -sa_password $env:sa_password -ACCEPT_EULA $env:ACCEPT_EULA -attach_dbs \"$env:attach_dbs\" -Verbose diff --git a/README.md b/README.md index f4b1fff..78f830c 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,16 @@ -[![version](https://img.shields.io/badge/docker%20last%20pushed-2023--09--18-blue)](https://hub.docker.com/repository/docker/cagrin/mssql-server-ltsc2022/tags) -[![docker stars](https://shields.io/docker/stars/cagrin/mssql-server-ltsc2022)](https://hub.docker.com/repository/docker/cagrin/mssql-server-ltsc2022) -[![docker pulls](https://shields.io/docker/pulls/cagrin/mssql-server-ltsc2022)](https://hub.docker.com/repository/docker/cagrin/mssql-server-ltsc2022) - - ## Featured Tags ### Windows images only |Tags|Collation| |--- |---| -|2022-latest
2019-latest
2017-latest
2016-latest
2014-latest
2012-latest|```SQL_Latin1_General_CP1_CI_AS```| -|2022-latest-pl
2019-latest-pl
2017-latest-pl
2016-latest-pl
2014-latest-pl
2012-latest-pl|```Polish_CI_AS``` | -|2022-latest-ua
2019-latest-ua
2017-latest-ua
2016-latest-ua
2014-latest-ua
2012-latest-ua|```Ukrainian_CI_AS``` | +|2022-latest|```SQL_Latin1_General_CP1_CI_AS```| ### SQL Server Developer Edition only |Tags prefix|Product|Version|Release date| |--- |--- |--- |---| |2022-latest...|SQL Server 2022 CU8|16.0.4075.1|2023-09-14| -|2019-latest...|SQL Server 2019 CU22|15.0.4322.2|2023-08-14| -|2017-latest...|SQL Server 2017 CU31|14.0.3460.9|2023-02-14| -|2016-latest...|SQL Server 2016 SP3|13.0.7024.30|2023-02-14| -|2014-latest...|SQL Server 2014 SP3 CU4|12.0.6444.4|2023-02-14| -|2012-latest...|SQL Server 2012 SP4|11.0.7507.2|2021-01-12| ## Configuration Requires the following environment flags: @@ -35,7 +23,4 @@ All images are based on [.NET Framework Runtime](https://hub.docker.com/_/micros |Product|Base image|Release date| |--- |--- |---| -|SQL Server 2022
SQL Server 2019
SQL Server 2017|mcr.microsoft.com/dotnet/framework/runtime:
4.8.1-20230808-windowsservercore-ltsc2022|2023-08-08| -|SQL Server 2016
SQL Server 2014
SQL Server 2012|mcr.microsoft.com/dotnet/framework/runtime:
3.5-20230808-windowsservercore-ltsc2022|2023-08-08| - -Built and tested on Windows 11 [Version 10.0.22000.2295]. +|SQL Server 2022|mcr.microsoft.com/dotnet/framework/runtime:
4.8.1-20230808-windowsservercore-ltsc2022|2023-08-08| diff --git a/developer/2012-latest/dockerfile b/developer/2012-latest/dockerfile deleted file mode 100755 index ea68fc3..0000000 --- a/developer/2012-latest/dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM mcr.microsoft.com/dotnet/framework/runtime:3.5-20230808-windowsservercore-ltsc2022 - -ARG SQLCOLLATION SHARE_PATH SHARE_LOGIN SHARE_PASSWORD -RUN net use X: %SHARE_PATH% /user:"%SHARE_LOGIN%" "%SHARE_PASSWORD%" \ -&& X:/en_sql_server_2012_developer_edition_with_service_pack_4_x64_dvd_11455847/setup.exe /q /ACTION=Install /FEATURES=SQLENGINE /INSTANCENAME=MSSQLSERVER /SECURITYMODE=SQL /SAPWD=qGH6RFvq /SQLSVCACCOUNT="NT AUTHORITY\System" /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" /TCPENABLED=1 /IACCEPTSQLSERVERLICENSETERMS /SQLCOLLATION=%SQLCOLLATION% \ -&& X:/SQLServer2012-KB4583465-x64.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS - -COPY start.ps1 / -ENV ACCEPT_EULA=_ MSSQL_SA_PASSWORD=_ -CMD powershell -Command (C:/start.ps1 -ACCEPT_EULA $env:ACCEPT_EULA -MSSQL_SA_PASSWORD $env:MSSQL_SA_PASSWORD -Verbose) \ No newline at end of file diff --git a/developer/2014-latest/dockerfile b/developer/2014-latest/dockerfile deleted file mode 100755 index f584608..0000000 --- a/developer/2014-latest/dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM mcr.microsoft.com/dotnet/framework/runtime:3.5-20230808-windowsservercore-ltsc2022 - -ARG SQLCOLLATION SHARE_PATH SHARE_LOGIN SHARE_PASSWORD -RUN net use X: %SHARE_PATH% /user:"%SHARE_LOGIN%" "%SHARE_PASSWORD%" \ -&& X:/en_sql_server_2014_developer_edition_with_service_pack_3_x64_dvd_083c344f/setup.exe /q /ACTION=Install /FEATURES=SQLENGINE /INSTANCENAME=MSSQLSERVER /SECURITYMODE=SQL /SAPWD=qGH6RFvq /SQLSVCACCOUNT="NT AUTHORITY\System" /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" /TCPENABLED=1 /IACCEPTSQLSERVERLICENSETERMS /SQLCOLLATION=%SQLCOLLATION% \ -&& X:/SQLServer2014-KB5021045-x64.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS - -COPY start.ps1 / -ENV ACCEPT_EULA=_ MSSQL_SA_PASSWORD=_ -CMD powershell -Command (C:/start.ps1 -ACCEPT_EULA $env:ACCEPT_EULA -MSSQL_SA_PASSWORD $env:MSSQL_SA_PASSWORD -Verbose) \ No newline at end of file diff --git a/developer/2014-latest/start.ps1 b/developer/2014-latest/start.ps1 deleted file mode 100755 index c4e64d9..0000000 --- a/developer/2014-latest/start.ps1 +++ /dev/null @@ -1,32 +0,0 @@ -param -( - [Parameter(Mandatory=$false)] [string]$ACCEPT_EULA, - [Parameter(Mandatory=$false)] [string]$MSSQL_SA_PASSWORD -) - -if($ACCEPT_EULA -ne "Y" -And $ACCEPT_EULA -ne "y") -{ - Write-Verbose "ERROR: You must accept the End User License Agreement before this container can start." - Write-Verbose "Set the environment variable ACCEPT_EULA to 'Y' if you accept the agreement." - exit 1 -} - -Write-Verbose "Starting SQL Server" -Start-Service MSSQLSERVER - -if($MSSQL_SA_PASSWORD -ne "_") -{ - Write-Verbose "Changing SA login credentials" - $sqlcmd = "ALTER LOGIN sa with password=" +"'" + $MSSQL_SA_PASSWORD + "'" + ";ALTER LOGIN sa ENABLE;" - & sqlcmd -U "sa" -P "qGH6RFvq" -Q $sqlcmd -} - -Write-Verbose "Started SQL Server." - -$lastCheck = (Get-Date).AddSeconds(-2) -while ($true) -{ - Get-EventLog -LogName Application -Source "MSSQL*" -After $lastCheck | Select-Object TimeGenerated, EntryType, Message - $lastCheck = Get-Date - Start-Sleep -Seconds 2 -} \ No newline at end of file diff --git a/developer/2016-latest/dockerfile b/developer/2016-latest/dockerfile deleted file mode 100755 index 66d8302..0000000 --- a/developer/2016-latest/dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM mcr.microsoft.com/dotnet/framework/runtime:3.5-20230808-windowsservercore-ltsc2022 - -ARG SQLCOLLATION SHARE_PATH SHARE_LOGIN SHARE_PASSWORD -RUN net use X: %SHARE_PATH% /user:"%SHARE_LOGIN%" "%SHARE_PASSWORD%" \ -&& X:/enu_sql_server_2016_developer_edition_with_service_pack_3_x64_dvd_ceaed495/setup.exe /q /ACTION=Install /FEATURES=SQLENGINE /INSTANCENAME=MSSQLSERVER /SECURITYMODE=SQL /SAPWD=qGH6RFvq /SQLSVCACCOUNT="NT AUTHORITY\System" /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" /TCPENABLED=1 /IACCEPTSQLSERVERLICENSETERMS /SQLCOLLATION=%SQLCOLLATION% \ -&& X:/SQLServer2016-KB5021128-x64.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS - -COPY start.ps1 / -ENV ACCEPT_EULA=_ MSSQL_SA_PASSWORD=_ -CMD powershell -Command (C:/start.ps1 -ACCEPT_EULA $env:ACCEPT_EULA -MSSQL_SA_PASSWORD $env:MSSQL_SA_PASSWORD -Verbose) \ No newline at end of file diff --git a/developer/2016-latest/start.ps1 b/developer/2016-latest/start.ps1 deleted file mode 100755 index c4e64d9..0000000 --- a/developer/2016-latest/start.ps1 +++ /dev/null @@ -1,32 +0,0 @@ -param -( - [Parameter(Mandatory=$false)] [string]$ACCEPT_EULA, - [Parameter(Mandatory=$false)] [string]$MSSQL_SA_PASSWORD -) - -if($ACCEPT_EULA -ne "Y" -And $ACCEPT_EULA -ne "y") -{ - Write-Verbose "ERROR: You must accept the End User License Agreement before this container can start." - Write-Verbose "Set the environment variable ACCEPT_EULA to 'Y' if you accept the agreement." - exit 1 -} - -Write-Verbose "Starting SQL Server" -Start-Service MSSQLSERVER - -if($MSSQL_SA_PASSWORD -ne "_") -{ - Write-Verbose "Changing SA login credentials" - $sqlcmd = "ALTER LOGIN sa with password=" +"'" + $MSSQL_SA_PASSWORD + "'" + ";ALTER LOGIN sa ENABLE;" - & sqlcmd -U "sa" -P "qGH6RFvq" -Q $sqlcmd -} - -Write-Verbose "Started SQL Server." - -$lastCheck = (Get-Date).AddSeconds(-2) -while ($true) -{ - Get-EventLog -LogName Application -Source "MSSQL*" -After $lastCheck | Select-Object TimeGenerated, EntryType, Message - $lastCheck = Get-Date - Start-Sleep -Seconds 2 -} \ No newline at end of file diff --git a/developer/2017-latest/dockerfile b/developer/2017-latest/dockerfile deleted file mode 100644 index 6dcb47b..0000000 --- a/developer/2017-latest/dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM mcr.microsoft.com/dotnet/framework/runtime:4.8.1-20230808-windowsservercore-ltsc2022 - -ARG SQLCOLLATION SHARE_PATH SHARE_LOGIN SHARE_PASSWORD -RUN net use X: %SHARE_PATH% /user:"%SHARE_LOGIN%" "%SHARE_PASSWORD%" \ -&& X:/en_sql_server_2017_developer_x64_dvd_11296168/setup.exe /q /ACTION=Install /FEATURES=SQLENGINE /INSTANCENAME=MSSQLSERVER /SECURITYMODE=SQL /SAPWD=qGH6RFvq /SQLSVCACCOUNT="NT AUTHORITY\System" /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" /TCPENABLED=1 /IACCEPTSQLSERVERLICENSETERMS /SQLCOLLATION=%SQLCOLLATION% \ -&& X:/SQLServer2017-KB5021126-x64.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS - -COPY start.ps1 / -ENV ACCEPT_EULA=_ MSSQL_SA_PASSWORD=_ -CMD powershell -Command (C:/start.ps1 -ACCEPT_EULA $env:ACCEPT_EULA -MSSQL_SA_PASSWORD $env:MSSQL_SA_PASSWORD -Verbose) \ No newline at end of file diff --git a/developer/2017-latest/start.ps1 b/developer/2017-latest/start.ps1 deleted file mode 100755 index c4e64d9..0000000 --- a/developer/2017-latest/start.ps1 +++ /dev/null @@ -1,32 +0,0 @@ -param -( - [Parameter(Mandatory=$false)] [string]$ACCEPT_EULA, - [Parameter(Mandatory=$false)] [string]$MSSQL_SA_PASSWORD -) - -if($ACCEPT_EULA -ne "Y" -And $ACCEPT_EULA -ne "y") -{ - Write-Verbose "ERROR: You must accept the End User License Agreement before this container can start." - Write-Verbose "Set the environment variable ACCEPT_EULA to 'Y' if you accept the agreement." - exit 1 -} - -Write-Verbose "Starting SQL Server" -Start-Service MSSQLSERVER - -if($MSSQL_SA_PASSWORD -ne "_") -{ - Write-Verbose "Changing SA login credentials" - $sqlcmd = "ALTER LOGIN sa with password=" +"'" + $MSSQL_SA_PASSWORD + "'" + ";ALTER LOGIN sa ENABLE;" - & sqlcmd -U "sa" -P "qGH6RFvq" -Q $sqlcmd -} - -Write-Verbose "Started SQL Server." - -$lastCheck = (Get-Date).AddSeconds(-2) -while ($true) -{ - Get-EventLog -LogName Application -Source "MSSQL*" -After $lastCheck | Select-Object TimeGenerated, EntryType, Message - $lastCheck = Get-Date - Start-Sleep -Seconds 2 -} \ No newline at end of file diff --git a/developer/2019-latest/dockerfile b/developer/2019-latest/dockerfile deleted file mode 100644 index fce596b..0000000 --- a/developer/2019-latest/dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM mcr.microsoft.com/dotnet/framework/runtime:4.8.1-20230808-windowsservercore-ltsc2022 - -ARG SQLCOLLATION SHARE_PATH SHARE_LOGIN SHARE_PASSWORD -RUN net use X: %SHARE_PATH% /user:"%SHARE_LOGIN%" "%SHARE_PASSWORD%" \ -&& X:/en_sql_server_2019_developer_x64_dvd_baea4195/setup.exe /q /ACTION=Install /FEATURES=SQLENGINE /INSTANCENAME=MSSQLSERVER /SECURITYMODE=SQL /SAPWD=qGH6RFvq /SQLSVCACCOUNT="NT AUTHORITY\System" /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" /TCPENABLED=1 /IACCEPTSQLSERVERLICENSETERMS /SQLCOLLATION=%SQLCOLLATION% \ -&& X:/SQLServer2019-KB5027702-x64.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS - -COPY start.ps1 / -ENV ACCEPT_EULA=_ MSSQL_SA_PASSWORD=_ -CMD powershell -Command (C:/start.ps1 -ACCEPT_EULA $env:ACCEPT_EULA -MSSQL_SA_PASSWORD $env:MSSQL_SA_PASSWORD -Verbose) \ No newline at end of file diff --git a/developer/2019-latest/start.ps1 b/developer/2019-latest/start.ps1 deleted file mode 100755 index c4e64d9..0000000 --- a/developer/2019-latest/start.ps1 +++ /dev/null @@ -1,32 +0,0 @@ -param -( - [Parameter(Mandatory=$false)] [string]$ACCEPT_EULA, - [Parameter(Mandatory=$false)] [string]$MSSQL_SA_PASSWORD -) - -if($ACCEPT_EULA -ne "Y" -And $ACCEPT_EULA -ne "y") -{ - Write-Verbose "ERROR: You must accept the End User License Agreement before this container can start." - Write-Verbose "Set the environment variable ACCEPT_EULA to 'Y' if you accept the agreement." - exit 1 -} - -Write-Verbose "Starting SQL Server" -Start-Service MSSQLSERVER - -if($MSSQL_SA_PASSWORD -ne "_") -{ - Write-Verbose "Changing SA login credentials" - $sqlcmd = "ALTER LOGIN sa with password=" +"'" + $MSSQL_SA_PASSWORD + "'" + ";ALTER LOGIN sa ENABLE;" - & sqlcmd -U "sa" -P "qGH6RFvq" -Q $sqlcmd -} - -Write-Verbose "Started SQL Server." - -$lastCheck = (Get-Date).AddSeconds(-2) -while ($true) -{ - Get-EventLog -LogName Application -Source "MSSQL*" -After $lastCheck | Select-Object TimeGenerated, EntryType, Message - $lastCheck = Get-Date - Start-Sleep -Seconds 2 -} \ No newline at end of file diff --git a/developer/2022-latest/dockerfile b/developer/2022-latest/dockerfile deleted file mode 100644 index e70f88f..0000000 --- a/developer/2022-latest/dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM mcr.microsoft.com/dotnet/framework/runtime:4.8.1-20230808-windowsservercore-ltsc2022 - -ARG SQLCOLLATION SHARE_PATH SHARE_LOGIN SHARE_PASSWORD -RUN net use X: %SHARE_PATH% /user:"%SHARE_LOGIN%" "%SHARE_PASSWORD%" \ -&& X:/enu_sql_server_2022_developer_edition_x64_dvd_7cacf733/setup.exe /q /ACTION=Install /FEATURES=SQLENGINE /INSTANCENAME=MSSQLSERVER /SECURITYMODE=SQL /SAPWD=qGH6RFvq /SQLSVCACCOUNT="NT AUTHORITY\System" /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" /TCPENABLED=1 /IACCEPTSQLSERVERLICENSETERMS /SQLCOLLATION=%SQLCOLLATION% \ -&& X:/SQLServer2022-KB5029666-x64/setup.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS - -COPY start.ps1 / -ENV ACCEPT_EULA=_ MSSQL_SA_PASSWORD=_ -CMD powershell -Command (C:/start.ps1 -ACCEPT_EULA $env:ACCEPT_EULA -MSSQL_SA_PASSWORD $env:MSSQL_SA_PASSWORD -Verbose) \ No newline at end of file diff --git a/developer/2022-latest/start.ps1 b/developer/2022-latest/start.ps1 deleted file mode 100755 index c4e64d9..0000000 --- a/developer/2022-latest/start.ps1 +++ /dev/null @@ -1,32 +0,0 @@ -param -( - [Parameter(Mandatory=$false)] [string]$ACCEPT_EULA, - [Parameter(Mandatory=$false)] [string]$MSSQL_SA_PASSWORD -) - -if($ACCEPT_EULA -ne "Y" -And $ACCEPT_EULA -ne "y") -{ - Write-Verbose "ERROR: You must accept the End User License Agreement before this container can start." - Write-Verbose "Set the environment variable ACCEPT_EULA to 'Y' if you accept the agreement." - exit 1 -} - -Write-Verbose "Starting SQL Server" -Start-Service MSSQLSERVER - -if($MSSQL_SA_PASSWORD -ne "_") -{ - Write-Verbose "Changing SA login credentials" - $sqlcmd = "ALTER LOGIN sa with password=" +"'" + $MSSQL_SA_PASSWORD + "'" + ";ALTER LOGIN sa ENABLE;" - & sqlcmd -U "sa" -P "qGH6RFvq" -Q $sqlcmd -} - -Write-Verbose "Started SQL Server." - -$lastCheck = (Get-Date).AddSeconds(-2) -while ($true) -{ - Get-EventLog -LogName Application -Source "MSSQL*" -After $lastCheck | Select-Object TimeGenerated, EntryType, Message - $lastCheck = Get-Date - Start-Sleep -Seconds 2 -} \ No newline at end of file diff --git a/developer/build.ps1 b/developer/build.ps1 index 34e0f09..ba9d139 100644 --- a/developer/build.ps1 +++ b/developer/build.ps1 @@ -8,7 +8,7 @@ function Build-Image ) $IP = (Get-NetIPAddress -PrefixOrigin Dhcp).IPAddress | Select-Object -First 1 - docker build --memory 4g --tag cagrin/mssql-server-ltsc2022:$Tag --build-arg SQLCOLLATION=$Collation --build-arg SHARE_PATH="\\$IP\Public" --build-arg SHARE_LOGIN="sa" --build-arg SHARE_PASSWORD="A.794613" ./$WorkingFolder + docker build --memory 4g --tag pangaeatech/mssql-server-ltsc2022:$Tag --build-arg SQLCOLLATION=$Collation --build-arg SHARE_PATH="\\$IP\Public" --build-arg SHARE_LOGIN="sa" --build-arg SHARE_PASSWORD="A.794613" ./$WorkingFolder } function Build-Version @@ -19,13 +19,6 @@ function Build-Version ) Build-Image $WorkingFolder $WorkingFolder 'SQL_Latin1_General_CP1_CI_AS' - Build-Image $WorkingFolder'-pl' $WorkingFolder 'Polish_CI_AS' - Build-Image $WorkingFolder'-ua' $WorkingFolder 'Ukrainian_CI_AS' } -Build-Version '2012-latest' -Build-Version '2014-latest' -Build-Version '2016-latest' -Build-Version '2017-latest' -Build-Version '2019-latest' -Build-Version '2022-latest' \ No newline at end of file +Build-Version '2022-latest' diff --git a/developer/pull.ps1 b/developer/pull.ps1 index a03e9b5..ea84177 100644 --- a/developer/pull.ps1 +++ b/developer/pull.ps1 @@ -5,7 +5,7 @@ function Invoke-PullImage [string]$Tag ) - docker pull cagrin/mssql-server-ltsc2022:$Tag + docker pull pangaeatech/mssql-server-ltsc2022:$Tag } function Invoke-PullVersion @@ -16,13 +16,6 @@ function Invoke-PullVersion ) Invoke-PullImage $Tag - Invoke-PullImage $Tag'-pl' - Invoke-PullImage $Tag'-ua' } -Invoke-PullVersion '2012-latest' -Invoke-PullVersion '2014-latest' -Invoke-PullVersion '2016-latest' -Invoke-PullVersion '2017-latest' -Invoke-PullVersion '2019-latest' -Invoke-PullVersion '2022-latest' \ No newline at end of file +Invoke-PullVersion '2022-latest' diff --git a/developer/push.ps1 b/developer/push.ps1 index 9d87877..511f784 100644 --- a/developer/push.ps1 +++ b/developer/push.ps1 @@ -5,7 +5,7 @@ function Push-Image [string]$Tag ) - docker push cagrin/mssql-server-ltsc2022:$Tag + docker push pangaeatech/mssql-server-ltsc2022:$Tag } function Push-Version @@ -16,13 +16,6 @@ function Push-Version ) Push-Image $Tag - Push-Image $Tag'-pl' - Push-Image $Tag'-ua' } -Push-Version '2012-latest' -Push-Version '2014-latest' -Push-Version '2016-latest' -Push-Version '2017-latest' -Push-Version '2019-latest' -Push-Version '2022-latest' \ No newline at end of file +Push-Version '2022-latest' diff --git a/developer/test.ps1 b/developer/test.ps1 index f073fd8..3a225c1 100644 --- a/developer/test.ps1 +++ b/developer/test.ps1 @@ -11,7 +11,7 @@ function Test-Image $MSSQL_SA_PASSWORD='A.794613' docker container stop test_image docker container rm test_image - docker run --name test_image --memory 4g -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=$MSSQL_SA_PASSWORD" -p 51433:1433 -d cagrin/mssql-server-ltsc2022:$Tag + docker run --name test_image --memory 4g -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=$MSSQL_SA_PASSWORD" -p 51433:1433 -d pangaeatech/mssql-server-ltsc2022:$Tag Start-Sleep -Second 15 Invoke-Sqlcmd -TrustServerCertificate -ServerInstance "localhost,51433" -Database "master" -Username "sa" -Password "$MSSQL_SA_PASSWORD" -Query "IF SERVERPROPERTY('ProductVersion') <> '$ProductVersion' RAISERROR ('ProductVersion is invalid', 16, 1)" Invoke-Sqlcmd -TrustServerCertificate -ServerInstance "localhost,51433" -Database "master" -Username "sa" -Password "$MSSQL_SA_PASSWORD" -Query "IF SERVERPROPERTY('Collation') <> '$Collation' RAISERROR ('Collation is invalid', 16, 1)" @@ -26,16 +26,9 @@ function Test-Version ) Test-Image $Tag $ProductVersion 'SQL_Latin1_General_CP1_CI_AS' - Test-Image $Tag'-pl' $ProductVersion 'Polish_CI_AS' - Test-Image $Tag'-ua' $ProductVersion 'Ukrainian_CI_AS' docker container stop test_image docker container rm test_image } -Test-Version '2012-latest' '11.0.7507.2' -Test-Version '2014-latest' '12.0.6444.4' -Test-Version '2016-latest' '13.0.7024.30' -Test-Version '2017-latest' '14.0.3460.9' -Test-Version '2019-latest' '15.0.4322.2' Test-Version '2022-latest' '16.0.4075.1' diff --git a/developer/2012-latest/start.ps1 b/start.ps1 similarity index 100% rename from developer/2012-latest/start.ps1 rename to start.ps1 From 60cbbfed76553412cc03295426fa2336a6a30f66 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Sun, 3 Dec 2023 13:18:57 -0600 Subject: [PATCH 03/26] playing --- .github/workflows/build-and-publish.yml | 2 +- Dockerfile | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index df97e0f..96577e4 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -2,7 +2,7 @@ name: Build and Publish Docker image concurrency: build-${{ github.ref }} on: push: - branches: [ main ] + branches: [ main, mjw_test ] permissions: contents: read diff --git a/Dockerfile b/Dockerfile index e8c64bd..789a85c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,10 @@ FROM microsoft/windowsservercore -LABEL maintainer "Perry Skountrianos" +LABEL maintainer "Pangaea Information Technologies, Ltd." # Download Links: -ENV exe "https://go.microsoft.com/fwlink/?linkid=2215158" +ENV setup "https://go.microsoft.com/fwlink/?linkid=2215158" +ENV patch "https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2023/09/sqlserver2022-kb5029666-x64_30b8b3666963cf01cb09b35c26a34a04d89cde8d.exe" ENV sa_password="_" \ attach_dbs="[]" \ @@ -15,10 +16,12 @@ SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPref COPY start.ps1 / WORKDIR / -RUN Invoke-WebRequest -Uri $env:exe -OutFile SQL.exe ; \ - Start-Process -Wait -FilePath .\SQL.exe -ArgumentList /qs, /x:setup ; \ - .\setup\setup.exe /q /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS ; \ - Remove-Item -Recurse -Force SQL.exe, setup +RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe ; \ + Invoke-WebRequest -Uri $env:patch -OutFile SQL2.exe ; \ + Start-Process -Wait -FilePath .\SQL1.exe -ArgumentList /qs, /x:setup ; \ + .\setup\setup.exe /q /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine,FullText /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS ; \ + Start-Process -Wait -FilePath .\SQL2.exe ; \ + Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, setup RUN stop-service MSSQLSERVER ; \ set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' ; \ From 1eb9788f9620b70c3002f67dc762b01fe0450e80 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Sun, 3 Dec 2023 13:19:51 -0600 Subject: [PATCH 04/26] playing --- .github/workflows/build-and-publish.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 96577e4..1571c48 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -26,12 +26,12 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - uses: docker/build-push-action@v5 - with: - context: . - push: true - tags: pangaeatech/mssql-server-ltsc2022:latest - build-args: | - 'SQLCOLLATION=$Collation' - 'SHARE_PATH="\\$IP\Public"' - 'SHARE_PASSWORD="A.794613"' + with: + context: . + push: true + tags: pangaeatech/mssql-server-ltsc2022:latest + build-args: | + 'SQLCOLLATION=$Collation' + 'SHARE_PATH="\\$IP\Public"' + 'SHARE_PASSWORD="A.794613"' From 4411f6f8e5b9ca51fb7a2c3b20d58e9bf60f216a Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Sun, 3 Dec 2023 13:29:02 -0600 Subject: [PATCH 05/26] trying again --- .github/workflows/build-and-publish.yml | 27 ++++++++++--------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 1571c48..1a5cf31 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -19,19 +19,14 @@ jobs: lfs: true submodules: true - - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - uses: docker/build-push-action@v5 - with: - context: . - push: true - tags: pangaeatech/mssql-server-ltsc2022:latest - build-args: | - 'SQLCOLLATION=$Collation' - 'SHARE_PATH="\\$IP\Public"' - 'SHARE_PASSWORD="A.794613"' - + - name: Build and push + working-directory: . + run: | + docker login -u $env:USER -p $env:TOKEN $env:REGISTRY + docker build 'SQLCOLLATION=$Collation' 'SHARE_PASSWORD="A.794613"' . + docker image push pangaeatech/mssql-server-ltsc2022:latest + docker logout + env: + REGISTRY: ghcr.io + USER: ${{ github.actor }} + TOKEN: ${{ secrets.GITHUB_TOKEN }} From a9c31a6a66d677fa9e278db29de3717a583bede5 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Sun, 3 Dec 2023 13:29:43 -0600 Subject: [PATCH 06/26] fixing yaml --- .github/workflows/build-and-publish.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 1a5cf31..802c4e3 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -20,13 +20,13 @@ jobs: submodules: true - name: Build and push - working-directory: . - run: | - docker login -u $env:USER -p $env:TOKEN $env:REGISTRY - docker build 'SQLCOLLATION=$Collation' 'SHARE_PASSWORD="A.794613"' . - docker image push pangaeatech/mssql-server-ltsc2022:latest - docker logout - env: - REGISTRY: ghcr.io - USER: ${{ github.actor }} - TOKEN: ${{ secrets.GITHUB_TOKEN }} + working-directory: . + run: | + docker login -u $env:USER -p $env:TOKEN $env:REGISTRY + docker build 'SQLCOLLATION=$Collation' 'SHARE_PASSWORD="A.794613"' . + docker image push pangaeatech/mssql-server-ltsc2022:latest + docker logout + env: + REGISTRY: ghcr.io + USER: ${{ github.actor }} + TOKEN: ${{ secrets.GITHUB_TOKEN }} From 3c6ad58862c15f6f8e541fefd173b06cd35066e0 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Sun, 3 Dec 2023 13:33:48 -0600 Subject: [PATCH 07/26] trying again --- .github/workflows/build-and-publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 802c4e3..be05ff0 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -23,8 +23,8 @@ jobs: working-directory: . run: | docker login -u $env:USER -p $env:TOKEN $env:REGISTRY - docker build 'SQLCOLLATION=$Collation' 'SHARE_PASSWORD="A.794613"' . - docker image push pangaeatech/mssql-server-ltsc2022:latest + docker build -t "pangaeatech/mssql-server-ltsc2022:latest" . + docker image push "pangaeatech/mssql-server-ltsc2022:latest" docker logout env: REGISTRY: ghcr.io From ac435a10c6f51e007148adc7d1d01735540b0b87 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Sun, 3 Dec 2023 13:35:38 -0600 Subject: [PATCH 08/26] fail on error --- .github/workflows/build-and-publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index be05ff0..6b699df 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -22,6 +22,7 @@ jobs: - name: Build and push working-directory: . run: | + $ErrorActionPreference = "Stop" docker login -u $env:USER -p $env:TOKEN $env:REGISTRY docker build -t "pangaeatech/mssql-server-ltsc2022:latest" . docker image push "pangaeatech/mssql-server-ltsc2022:latest" From e5d68f179e26b307b73ed706bc89b03f74aa91c9 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Sun, 3 Dec 2023 13:38:04 -0600 Subject: [PATCH 09/26] fixing pull --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 789a85c..92b3a34 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM microsoft/windowsservercore +FROM microsoft/windowsservercore:ltsc2022 LABEL maintainer "Pangaea Information Technologies, Ltd." From 7247181d397e9ee03fa07ab95e9cbf0b470615a1 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Sun, 3 Dec 2023 13:41:05 -0600 Subject: [PATCH 10/26] trying --- .github/workflows/build-and-publish.yml | 7 +------ Dockerfile | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 6b699df..9e7adf5 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -21,12 +21,7 @@ jobs: - name: Build and push working-directory: . - run: | - $ErrorActionPreference = "Stop" - docker login -u $env:USER -p $env:TOKEN $env:REGISTRY - docker build -t "pangaeatech/mssql-server-ltsc2022:latest" . - docker image push "pangaeatech/mssql-server-ltsc2022:latest" - docker logout + run: docker login -u $env:USER -p $env:TOKEN $env:REGISTRY && docker build -t "pangaeatech/mssql-server-ltsc2022:latest" . && docker image push "pangaeatech/mssql-server-ltsc2022:latest" && docker logout env: REGISTRY: ghcr.io USER: ${{ github.actor }} diff --git a/Dockerfile b/Dockerfile index 92b3a34..67a120a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM microsoft/windowsservercore:ltsc2022 +FROM mcr.microsoft.com/microsoft/windowsservercore:ltsc2022 LABEL maintainer "Pangaea Information Technologies, Ltd." From 1308676bc9a000badf31d1a9ddfe0cfeaf1ad5d9 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Sun, 3 Dec 2023 13:42:34 -0600 Subject: [PATCH 11/26] trying again --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 67a120a..f4f7b8e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/microsoft/windowsservercore:ltsc2022 +FROM mcr.microsoft.com/windows/servercore:ltsc2022 LABEL maintainer "Pangaea Information Technologies, Ltd." From 2084d34c388e01264c21b5c24e9330a094cf4e21 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Sun, 3 Dec 2023 13:46:46 -0600 Subject: [PATCH 12/26] Fixing patch --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f4f7b8e..525d21c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,8 +19,9 @@ WORKDIR / RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe ; \ Invoke-WebRequest -Uri $env:patch -OutFile SQL2.exe ; \ Start-Process -Wait -FilePath .\SQL1.exe -ArgumentList /qs, /x:setup ; \ + Start-Process -Wait -FilePath .\SQL2.exe -ArgumentList /qs, /x:patch ; \ .\setup\setup.exe /q /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine,FullText /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS ; \ - Start-Process -Wait -FilePath .\SQL2.exe ; \ + .\patch\setup.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS ; \ Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, setup RUN stop-service MSSQLSERVER ; \ From 8ec3f48b2ba97125885518ab710c642a4b9cd93b Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Sun, 3 Dec 2023 20:58:08 -0600 Subject: [PATCH 13/26] trying again --- Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 525d21c..cbb96d3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,12 +17,11 @@ COPY start.ps1 / WORKDIR / RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe ; \ + .\SQL1.exe /q /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine,FullText /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS ; \ Invoke-WebRequest -Uri $env:patch -OutFile SQL2.exe ; \ - Start-Process -Wait -FilePath .\SQL1.exe -ArgumentList /qs, /x:setup ; \ Start-Process -Wait -FilePath .\SQL2.exe -ArgumentList /qs, /x:patch ; \ - .\setup\setup.exe /q /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine,FullText /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS ; \ .\patch\setup.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS ; \ - Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, setup + Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, patch RUN stop-service MSSQLSERVER ; \ set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' ; \ From 361e476b4e31a27ce4573fb55af74e274d9c0133 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Sun, 3 Dec 2023 21:59:36 -0600 Subject: [PATCH 14/26] maybe --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index cbb96d3..8cf3000 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,8 +23,8 @@ RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe ; \ .\patch\setup.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS ; \ Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, patch -RUN stop-service MSSQLSERVER ; \ - set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' ; \ +RUN stop-service MSSQLSERVER +RUN set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' ; \ set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpport -value 1433 ; \ set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\' -name LoginMode -value 2 ; From b0b22d5043ec28f11cf9a93da813dbf268206828 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Mon, 4 Dec 2023 08:43:48 -0600 Subject: [PATCH 15/26] again --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8cf3000..02aaf6e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,7 +23,6 @@ RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe ; \ .\patch\setup.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS ; \ Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, patch -RUN stop-service MSSQLSERVER RUN set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' ; \ set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpport -value 1433 ; \ set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\' -name LoginMode -value 2 ; From 0d83bca841adc6078217bfb9b40abce2c0d57b1b Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Mon, 4 Dec 2023 08:59:32 -0600 Subject: [PATCH 16/26] Revert "again" This reverts commit b0b22d5043ec28f11cf9a93da813dbf268206828. --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 02aaf6e..8cf3000 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,6 +23,7 @@ RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe ; \ .\patch\setup.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS ; \ Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, patch +RUN stop-service MSSQLSERVER RUN set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' ; \ set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpport -value 1433 ; \ set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\' -name LoginMode -value 2 ; From 965200e7c656722abd59b1ed323933f240bb7cba Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Mon, 4 Dec 2023 09:02:11 -0600 Subject: [PATCH 17/26] again --- Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8cf3000..4a7858c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,10 +23,10 @@ RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe ; \ .\patch\setup.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS ; \ Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, patch -RUN stop-service MSSQLSERVER -RUN set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' ; \ - set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpport -value 1433 ; \ - set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\' -name LoginMode -value 2 ; +RUN set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql16.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' ; \ + set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql16.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpport -value 1433 ; \ + set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql16.MSSQLSERVER\mssqlserver\' -name LoginMode -value 2 ; \ + start-service MSSQLSERVER HEALTHCHECK CMD [ "sqlcmd", "-Q", "select 1" ] From 9b6f68590c26ab7dc6672954c324e6c47f2913cf Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Mon, 4 Dec 2023 09:53:56 -0600 Subject: [PATCH 18/26] rolling back --- Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4a7858c..cbb96d3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,10 +23,10 @@ RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe ; \ .\patch\setup.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS ; \ Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, patch -RUN set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql16.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' ; \ - set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql16.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpport -value 1433 ; \ - set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql16.MSSQLSERVER\mssqlserver\' -name LoginMode -value 2 ; \ - start-service MSSQLSERVER +RUN stop-service MSSQLSERVER ; \ + set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' ; \ + set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpport -value 1433 ; \ + set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\' -name LoginMode -value 2 ; HEALTHCHECK CMD [ "sqlcmd", "-Q", "select 1" ] From 5da38564e4409bc94cc0c4da654dc612b29331df Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Mon, 4 Dec 2023 10:16:38 -0600 Subject: [PATCH 19/26] adding test --- .github/workflows/build-and-publish.yml | 28 ++++++++++++++------ .github/workflows/testImages.yml | 18 ------------- developer/build.ps1 | 24 ----------------- developer/pull.ps1 | 21 --------------- developer/push.ps1 | 21 --------------- developer/test.ps1 | 34 ------------------------- 6 files changed, 20 insertions(+), 126 deletions(-) delete mode 100644 .github/workflows/testImages.yml delete mode 100644 developer/build.ps1 delete mode 100644 developer/pull.ps1 delete mode 100644 developer/push.ps1 delete mode 100644 developer/test.ps1 diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 9e7adf5..b62df6f 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -2,7 +2,10 @@ name: Build and Publish Docker image concurrency: build-${{ github.ref }} on: push: - branches: [ main, mjw_test ] + branches: [ main] + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + branches: [main] permissions: contents: read @@ -10,7 +13,14 @@ permissions: jobs: build-and-push-image: + if: ${{ github.event_name == 'push' || (!github.event.pull_request.draft && !startsWith(github.event.pull_request.title, 'WIP ')) }} runs-on: windows-latest + env: + REGISTRY: ghcr.io + USER: ${{ github.actor }} + TOKEN: ${{ secrets.GITHUB_TOKEN }} + SQLCOLLATION: "SQL_Latin1_General_CP1_CI_AS" + MSSQL_SA_PASSWORD: "A.794613" steps: - uses: actions/checkout@v4 @@ -19,10 +29,12 @@ jobs: lfs: true submodules: true - - name: Build and push - working-directory: . - run: docker login -u $env:USER -p $env:TOKEN $env:REGISTRY && docker build -t "pangaeatech/mssql-server-ltsc2022:latest" . && docker image push "pangaeatech/mssql-server-ltsc2022:latest" && docker logout - env: - REGISTRY: ghcr.io - USER: ${{ github.actor }} - TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Build + run: docker build -m 4g -t pangaeatech/mssql-server-ltsc2022:latest --build-arg SQLCOLLATION="$env:SQLCOLLATION" . + + - name: Test + run: docker run --name test_image -m 4g -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=$env:MSSQL_SA_PASSWORD" -p 51433:1433 -d pangaeatech/mssql-server-ltsc2022:latest && Start-Sleep -Second 15 && Invoke-Sqlcmd -TrustServerCertificate -ServerInstance "localhost,51433" -Database "master" -Username "sa" -Password "$env:MSSQL_SA_PASSWORD" -Query "IF SERVERPROPERTY('ProductVersion') <> '$ProductVersion' RAISERROR ('ProductVersion is invalid', 16, 1)" && Invoke-Sqlcmd -TrustServerCertificate -ServerInstance "localhost,51433" -Database "master" -Username "sa" -Password "$env:MSSQL_SA_PASSWORD" -Query "IF SERVERPROPERTY('Collation') <> '$Collation' RAISERROR ('Collation is invalid', 16, 1)" + + - name: Push on main + if: ${{ github.event_name == 'push' }} + run: docker login -u $env:USER -p $env:TOKEN $env:REGISTRY && docker image push "pangaeatech/mssql-server-ltsc2022:latest" && docker logout diff --git a/.github/workflows/testImages.yml b/.github/workflows/testImages.yml deleted file mode 100644 index 4a029ff..0000000 --- a/.github/workflows/testImages.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Test images -on: - workflow_dispatch: - -jobs: - test-images: - name: Test images - runs-on: windows-2022 - steps: - - uses: actions/checkout@v4 - - name: Pull all images - shell: pwsh - run: | - ./developer/pull.ps1 - - name: Test all images - shell: pwsh - run: | - ./developer/test.ps1 \ No newline at end of file diff --git a/developer/build.ps1 b/developer/build.ps1 deleted file mode 100644 index ba9d139..0000000 --- a/developer/build.ps1 +++ /dev/null @@ -1,24 +0,0 @@ -function Build-Image -{ - param - ( - [string]$Tag, - [string]$WorkingFolder, - [string]$Collation - ) - - $IP = (Get-NetIPAddress -PrefixOrigin Dhcp).IPAddress | Select-Object -First 1 - docker build --memory 4g --tag pangaeatech/mssql-server-ltsc2022:$Tag --build-arg SQLCOLLATION=$Collation --build-arg SHARE_PATH="\\$IP\Public" --build-arg SHARE_LOGIN="sa" --build-arg SHARE_PASSWORD="A.794613" ./$WorkingFolder -} - -function Build-Version -{ - param - ( - [string]$WorkingFolder - ) - - Build-Image $WorkingFolder $WorkingFolder 'SQL_Latin1_General_CP1_CI_AS' -} - -Build-Version '2022-latest' diff --git a/developer/pull.ps1 b/developer/pull.ps1 deleted file mode 100644 index ea84177..0000000 --- a/developer/pull.ps1 +++ /dev/null @@ -1,21 +0,0 @@ -function Invoke-PullImage -{ - param - ( - [string]$Tag - ) - - docker pull pangaeatech/mssql-server-ltsc2022:$Tag -} - -function Invoke-PullVersion -{ - param - ( - [string]$Tag - ) - - Invoke-PullImage $Tag -} - -Invoke-PullVersion '2022-latest' diff --git a/developer/push.ps1 b/developer/push.ps1 deleted file mode 100644 index 511f784..0000000 --- a/developer/push.ps1 +++ /dev/null @@ -1,21 +0,0 @@ -function Push-Image -{ - param - ( - [string]$Tag - ) - - docker push pangaeatech/mssql-server-ltsc2022:$Tag -} - -function Push-Version -{ - param - ( - [string]$Tag - ) - - Push-Image $Tag -} - -Push-Version '2022-latest' diff --git a/developer/test.ps1 b/developer/test.ps1 deleted file mode 100644 index 3a225c1..0000000 --- a/developer/test.ps1 +++ /dev/null @@ -1,34 +0,0 @@ -function Test-Image -{ - param - ( - [string]$Tag, - [string]$ProductVersion, - [string]$Collation - ) - - Write-Host "Test-Image '$Tag' '$ProductVersion' '$Collation'" -ForegroundColor Magenta - $MSSQL_SA_PASSWORD='A.794613' - docker container stop test_image - docker container rm test_image - docker run --name test_image --memory 4g -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=$MSSQL_SA_PASSWORD" -p 51433:1433 -d pangaeatech/mssql-server-ltsc2022:$Tag - Start-Sleep -Second 15 - Invoke-Sqlcmd -TrustServerCertificate -ServerInstance "localhost,51433" -Database "master" -Username "sa" -Password "$MSSQL_SA_PASSWORD" -Query "IF SERVERPROPERTY('ProductVersion') <> '$ProductVersion' RAISERROR ('ProductVersion is invalid', 16, 1)" - Invoke-Sqlcmd -TrustServerCertificate -ServerInstance "localhost,51433" -Database "master" -Username "sa" -Password "$MSSQL_SA_PASSWORD" -Query "IF SERVERPROPERTY('Collation') <> '$Collation' RAISERROR ('Collation is invalid', 16, 1)" -} - -function Test-Version -{ - param - ( - [string]$Tag, - [string]$ProductVersion - ) - - Test-Image $Tag $ProductVersion 'SQL_Latin1_General_CP1_CI_AS' - - docker container stop test_image - docker container rm test_image -} - -Test-Version '2022-latest' '16.0.4075.1' From a8cdee96ff25e2222c2b16bbc804f0300977328a Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Mon, 4 Dec 2023 11:12:42 -0600 Subject: [PATCH 20/26] updating --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index cbb96d3..36f3b7c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,7 @@ COPY start.ps1 / WORKDIR / RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe ; \ - .\SQL1.exe /q /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine,FullText /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS ; \ + .\SQL1.exe /q /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine,FullText /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS /SAPWD=qGH6RFvq /SECURITYMODE=SQL /SQLSVCSTARTUPTYPE=Automatic ; \ Invoke-WebRequest -Uri $env:patch -OutFile SQL2.exe ; \ Start-Process -Wait -FilePath .\SQL2.exe -ArgumentList /qs, /x:patch ; \ .\patch\setup.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS ; \ From c5e5bbfc7fcfd15f616eef99567740200c34e464 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Mon, 4 Dec 2023 11:13:52 -0600 Subject: [PATCH 21/26] splitting up commands --- Dockerfile | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 36f3b7c..082628a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,17 +16,17 @@ SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPref COPY start.ps1 / WORKDIR / -RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe ; \ - .\SQL1.exe /q /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine,FullText /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS /SAPWD=qGH6RFvq /SECURITYMODE=SQL /SQLSVCSTARTUPTYPE=Automatic ; \ - Invoke-WebRequest -Uri $env:patch -OutFile SQL2.exe ; \ - Start-Process -Wait -FilePath .\SQL2.exe -ArgumentList /qs, /x:patch ; \ - .\patch\setup.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS ; \ - Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, patch - -RUN stop-service MSSQLSERVER ; \ - set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' ; \ - set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpport -value 1433 ; \ - set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\' -name LoginMode -value 2 ; +RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe +RUN .\SQL1.exe /q /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine,FullText /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS /SAPWD=qGH6RFvq /SECURITYMODE=SQL /SQLSVCSTARTUPTYPE=Automatic +RUN Invoke-WebRequest -Uri $env:patch -OutFile SQL2.exe +RUN Start-Process -Wait -FilePath .\SQL2.exe -ArgumentList /qs, /x:patch +RUN .\patch\setup.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS +RUN Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, patch + +RUN stop-service MSSQLSERVER +RUN set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' +RUN set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpport -value 1433 +RUN set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\' -name LoginMode -value 2 HEALTHCHECK CMD [ "sqlcmd", "-Q", "select 1" ] From dfde842bcdf854cc33634a3afff2b58bcf77e641 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Mon, 4 Dec 2023 11:34:12 -0600 Subject: [PATCH 22/26] fix --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 082628a..433d05b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe RUN .\SQL1.exe /q /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine,FullText /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS /SAPWD=qGH6RFvq /SECURITYMODE=SQL /SQLSVCSTARTUPTYPE=Automatic RUN Invoke-WebRequest -Uri $env:patch -OutFile SQL2.exe RUN Start-Process -Wait -FilePath .\SQL2.exe -ArgumentList /qs, /x:patch -RUN .\patch\setup.exe /quiet /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS +RUN .\patch\setup.exe /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS RUN Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, patch RUN stop-service MSSQLSERVER From 2aba7439175f59b6a4406fae75994de0f54299d6 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Mon, 4 Dec 2023 11:52:01 -0600 Subject: [PATCH 23/26] qs mode --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 433d05b..ce0c819 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,10 +17,10 @@ COPY start.ps1 / WORKDIR / RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe -RUN .\SQL1.exe /q /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine,FullText /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS /SAPWD=qGH6RFvq /SECURITYMODE=SQL /SQLSVCSTARTUPTYPE=Automatic +RUN .\SQL1.exe /qs /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine,FullText /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS /SAPWD=qGH6RFvq /SECURITYMODE=SQL /SQLSVCSTARTUPTYPE=Automatic RUN Invoke-WebRequest -Uri $env:patch -OutFile SQL2.exe RUN Start-Process -Wait -FilePath .\SQL2.exe -ArgumentList /qs, /x:patch -RUN .\patch\setup.exe /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS +RUN .\patch\setup.exe /qs /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS RUN Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, patch RUN stop-service MSSQLSERVER From 17bb0043af4d52d88532bb44b432313599081b1d Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Mon, 4 Dec 2023 12:09:29 -0600 Subject: [PATCH 24/26] don't patch --- Dockerfile | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index ce0c819..df0ebaf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,6 @@ LABEL maintainer "Pangaea Information Technologies, Ltd." # Download Links: ENV setup "https://go.microsoft.com/fwlink/?linkid=2215158" -ENV patch "https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2023/09/sqlserver2022-kb5029666-x64_30b8b3666963cf01cb09b35c26a34a04d89cde8d.exe" ENV sa_password="_" \ attach_dbs="[]" \ @@ -18,10 +17,7 @@ WORKDIR / RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe RUN .\SQL1.exe /qs /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine,FullText /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS /SAPWD=qGH6RFvq /SECURITYMODE=SQL /SQLSVCSTARTUPTYPE=Automatic -RUN Invoke-WebRequest -Uri $env:patch -OutFile SQL2.exe -RUN Start-Process -Wait -FilePath .\SQL2.exe -ArgumentList /qs, /x:patch -RUN .\patch\setup.exe /qs /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS -RUN Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, patch +RUN Remove-Item -Recurse -Force SQL1.exe RUN stop-service MSSQLSERVER RUN set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' From 4e6caa47d3e125fdde0d28bc37525fb0050597fa Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Mon, 4 Dec 2023 12:21:28 -0600 Subject: [PATCH 25/26] Revert "don't patch" This reverts commit 17bb0043af4d52d88532bb44b432313599081b1d. --- Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index df0ebaf..ce0c819 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,6 +4,7 @@ LABEL maintainer "Pangaea Information Technologies, Ltd." # Download Links: ENV setup "https://go.microsoft.com/fwlink/?linkid=2215158" +ENV patch "https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2023/09/sqlserver2022-kb5029666-x64_30b8b3666963cf01cb09b35c26a34a04d89cde8d.exe" ENV sa_password="_" \ attach_dbs="[]" \ @@ -17,7 +18,10 @@ WORKDIR / RUN Invoke-WebRequest -Uri $env:setup -OutFile SQL1.exe RUN .\SQL1.exe /qs /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine,FullText /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\NETWORK SERVICE' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS /SAPWD=qGH6RFvq /SECURITYMODE=SQL /SQLSVCSTARTUPTYPE=Automatic -RUN Remove-Item -Recurse -Force SQL1.exe +RUN Invoke-WebRequest -Uri $env:patch -OutFile SQL2.exe +RUN Start-Process -Wait -FilePath .\SQL2.exe -ArgumentList /qs, /x:patch +RUN .\patch\setup.exe /qs /ACTION=Patch /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS +RUN Remove-Item -Recurse -Force SQL1.exe, SQL2.exe, patch RUN stop-service MSSQLSERVER RUN set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.MSSQLSERVER\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' From 2e080607e07fa15acbd58827b9bdc32216c6ebd7 Mon Sep 17 00:00:00 2001 From: Michael Waddell Date: Wed, 3 Jan 2024 09:36:00 -0600 Subject: [PATCH 26/26] Updating to latest patch --- .github/workflows/build-and-publish.yml | 2 +- Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index b62df6f..1dfc659 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -1,5 +1,5 @@ name: Build and Publish Docker image -concurrency: build-${{ github.ref }} +concurrency: build-${{ github.head_ref || github.ref }} on: push: branches: [ main] diff --git a/Dockerfile b/Dockerfile index ce0c819..a9f72ab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ LABEL maintainer "Pangaea Information Technologies, Ltd." # Download Links: ENV setup "https://go.microsoft.com/fwlink/?linkid=2215158" -ENV patch "https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2023/09/sqlserver2022-kb5029666-x64_30b8b3666963cf01cb09b35c26a34a04d89cde8d.exe" +ENV patch "https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/updt/2023/11/sqlserver2022-kb5031778-x64_8e55c5f6d70155e9f7fc190383373917426668a2.exe" ENV sa_password="_" \ attach_dbs="[]" \