diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml new file mode 100644 index 0000000..1dfc659 --- /dev/null +++ b/.github/workflows/build-and-publish.yml @@ -0,0 +1,40 @@ +name: Build and Publish Docker image +concurrency: build-${{ github.head_ref || github.ref }} +on: + push: + branches: [ main] + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + branches: [main] + +permissions: + contents: read + packages: write + +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 + with: + clean: true + lfs: true + submodules: true + + - 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/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a9f72ab --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +FROM mcr.microsoft.com/windows/servercore:ltsc2022 + +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/11/sqlserver2022-kb5031778-x64_8e55c5f6d70155e9f7fc190383373917426668a2.exe" + +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: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 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" ] + +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 6ede60a..78f830c 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,26 @@ -## 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. +## Featured Tags + +### Windows images only + +|Tags|Collation| +|--- |---| +|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| + +## 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|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 deleted file mode 100644 index 34e0f09..0000000 --- a/developer/build.ps1 +++ /dev/null @@ -1,31 +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 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 -} - -function Build-Version -{ - param - ( - [string]$WorkingFolder - ) - - 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 diff --git a/developer/pull.ps1 b/developer/pull.ps1 deleted file mode 100644 index a03e9b5..0000000 --- a/developer/pull.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -function Invoke-PullImage -{ - param - ( - [string]$Tag - ) - - docker pull cagrin/mssql-server-ltsc2022:$Tag -} - -function Invoke-PullVersion -{ - param - ( - [string]$Tag - ) - - 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 diff --git a/developer/push.ps1 b/developer/push.ps1 deleted file mode 100644 index 9d87877..0000000 --- a/developer/push.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -function Push-Image -{ - param - ( - [string]$Tag - ) - - docker push cagrin/mssql-server-ltsc2022:$Tag -} - -function Push-Version -{ - param - ( - [string]$Tag - ) - - 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 diff --git a/developer/test.ps1 b/developer/test.ps1 deleted file mode 100644 index f073fd8..0000000 --- a/developer/test.ps1 +++ /dev/null @@ -1,41 +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 cagrin/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' - 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