|
1 | 1 | # escape=` |
2 | 2 | # hadolint shell=powershell |
3 | 3 |
|
4 | | -ARG JAVA_VERSION=21.0.11_10 |
5 | 4 | ARG WINDOWS_VERSION=ltsc2022 |
6 | 5 |
|
7 | 6 | FROM mcr.microsoft.com/windows/servercore:"${WINDOWS_VERSION}" AS jre-and-war |
8 | 7 |
|
9 | 8 | # $ProgressPreference: https://github.com/PowerShell/PowerShell/issues/2138#issuecomment-251261324 |
10 | 9 | SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] |
11 | 10 |
|
12 | | -ARG JAVA_VERSION=21.0.11_10 |
13 | | - |
14 | | -RUN New-Item -ItemType Directory -Path C:\temp | Out-Null ; ` |
15 | | - $javaMajorVersion = $env:JAVA_VERSION.substring(0,2) ; ` |
16 | | - $msiUrl = 'https://api.adoptium.net/v3/installer/version/jdk-{0}/windows/x64/jdk/hotspot/normal/eclipse?project=jdk' -f $env:JAVA_VERSION.Replace('_', '%2B') ; ` |
17 | | - Invoke-WebRequest $msiUrl -OutFile 'C:\temp\jdk.msi' ; ` |
18 | | - $proc = Start-Process -FilePath 'msiexec.exe' -ArgumentList '/i', 'C:\temp\jdk.msi', '/L*V', 'C:\temp\OpenJDK.log', '/quiet', 'ADDLOCAL=FeatureEnvironment,FeatureJarFileRunWith,FeatureJavaHome', "INSTALLDIR=C:\openjdk-${javaMajorVersion}" -Wait -Passthru ; ` |
19 | | - $proc.WaitForExit() ; ` |
20 | | - Remove-Item -Path C:\temp -Recurse | Out-Null |
21 | | - |
22 | | -RUN Write-Host 'javac --version' ; javac --version ; ` |
23 | | - Write-Host 'java --version' ; java --version |
| 11 | +ARG JAVA_ZIP_URL="Provided by docker-bake.hcl" |
| 12 | +ARG jdkTempHome='C:\openjdk' |
| 13 | +ARG jdkTemp='C:\jdktemp' |
| 14 | +ARG localArchive="${jdkTemp}\jdk.zip" |
| 15 | +RUN New-Item -ItemType Directory -Path $env:jdkTemp | Out-Null ; ` |
| 16 | + Invoke-WebRequest $env:JAVA_ZIP_URL -OutFile $env:localArchive ; ` |
| 17 | + Expand-Archive -Path $env:localArchive -DestinationPath $env:jdkTemp ; ` |
| 18 | + $expandedDir = Get-ChildItem -Path $env:jdkTemp -Directory | Where-Object { $_.Name -like 'jdk*' } ; ` |
| 19 | + Move-Item -Path $expandedDir.FullName -Destination $env:jdkTempHome -Force ; ` |
| 20 | + Remove-Item -Path $env:jdkTemp -Recurse | Out-Null ; ` |
| 21 | + $CurrentPath = (Get-Itemproperty -path 'hklm:\system\currentcontrolset\control\session manager\environment' -Name Path).Path ; ` |
| 22 | + $NewPath = $CurrentPath + $(';{0}/bin' -f $env:jdkTempHome) ; ` |
| 23 | + Set-ItemProperty -path 'hklm:\system\currentcontrolset\control\session manager\environment' -Name Path -Value $NewPath |
24 | 24 |
|
25 | | -RUN $version = (jlink --version) ; ` |
| 25 | +RUN Write-Host 'java --version' ; java --version ; ` |
| 26 | + Write-Host 'javac --version' ; javac --version ; ` |
| 27 | + $version = (jlink --version) ; ` |
26 | 28 | $javaMajorVersion = $version.Substring(0,2) ; ` |
27 | 29 | if ($javaMajorVersion -eq '25') { ` |
28 | | - $openjdkFolder = 'openjdk-{0}' -f $javaMajorVersion ; ` |
29 | | - Copy-Item -Path $openjdkFolder -Destination C:\javaruntime -Recurse ; ` |
| 30 | + Move-Item -Path $env:jdkTempHome -Destination C:\javaruntime ; ` |
30 | 31 | } else { ` |
31 | 32 | $options = '--compress=2' ; ` |
32 | 33 | switch ($version.Substring(0,3)) { ` |
|
0 commit comments