Skip to content

Commit a080def

Browse files
committed
Adjust a few things for easier debugging/use, add windows to update.sh and generate-stackbrew-library.sh
1 parent 1c4f94a commit a080def

File tree

5 files changed

+124
-30
lines changed

5 files changed

+124
-30
lines changed

8-jdk/windows/build.sh

Lines changed: 0 additions & 5 deletions
This file was deleted.

8-jdk/windows/nanoserver/Dockerfile

Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,43 @@
11
FROM microsoft/nanoserver
22

3+
# $ProgressPreference: https://github.com/PowerShell/PowerShell/issues/2138#issuecomment-251261324
34
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
45

5-
ENV JAVA_VERSION 1.8.0.111-3
6-
ENV JAVA_ZIP_VERSION 1.8.0-openjdk-1.8.0.111-3.b15
7-
ENV JAVA_SHA256 e080371bf57536668416157660e05d95fe04db15da36234d32bda8e301bb0454
6+
ENV JAVA_HOME C:\\ojdkbuild
7+
RUN $newPath = ('{0}\bin;{1}' -f $env:JAVA_HOME, $env:PATH); \
8+
Write-Host ('Updating PATH: {0}' -f $newPath); \
9+
# Nano Server does not have "[Environment]::SetEnvironmentVariable()"
10+
setx /M PATH $newPath;
811

9-
ENV JAVA_HOME C:\\java-${JAVA_ZIP_VERSION}.ojdkbuild.windows.x86_64
12+
# https://github.com/ojdkbuild/ojdkbuild/releases
13+
ENV JAVA_VERSION 8u111
14+
ENV JAVA_OJDKBUILD_VERSION 1.8.0.111-3
15+
ENV JAVA_OJDKBUILD_ZIP java-1.8.0-openjdk-1.8.0.111-3.b15.ojdkbuild.windows.x86_64.zip
16+
ENV JAVA_OJDKBUILD_SHA256 e080371bf57536668416157660e05d95fe04db15da36234d32bda8e301bb0454
1017

11-
RUN Invoke-WebRequest $('https://github.com/ojdkbuild/ojdkbuild/releases/download/{0}/java-{1}.ojdkbuild.windows.x86_64.zip' -f $env:JAVA_VERSION, $env:JAVA_ZIP_VERSION) -OutFile 'openjdk.zip' -UseBasicParsing ; \
12-
if ((Get-FileHash openjdk.zip -Algorithm sha256).Hash -ne $env:JAVA_SHA256) {exit 1} ; \
13-
Expand-Archive openjdk.zip -DestinationPath C:\ ; \
14-
$env:PATH = '{0}\bin;{1}' -f $env:JAVA_HOME, $env:PATH ; \
15-
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\' -Name Path -Value $env:PATH ; \
16-
Remove-Item -Path openjdk.zip
18+
RUN $url = ('https://github.com/ojdkbuild/ojdkbuild/releases/download/{0}/{1}' -f $env:JAVA_OJDKBUILD_VERSION, $env:JAVA_OJDKBUILD_ZIP); \
19+
Write-Host ('Downloading {0} ...' -f $url); \
20+
Invoke-WebRequest -Uri $url -OutFile 'ojdkbuild.zip'; \
21+
Write-Host ('Verifying sha256 ({0}) ...' -f $env:JAVA_OJDKBUILD_SHA256); \
22+
if ((Get-FileHash ojdkbuild.zip -Algorithm sha256).Hash -ne $env:JAVA_OJDKBUILD_SHA256) { \
23+
Write-Host 'FAILED!'; \
24+
exit 1; \
25+
}; \
26+
\
27+
Write-Host 'Expanding ...'; \
28+
Expand-Archive ojdkbuild.zip -DestinationPath C:\; \
29+
\
30+
Write-Host 'Renaming ...'; \
31+
Move-Item \
32+
-Path ('C:\{0}' -f ($env:JAVA_OJDKBUILD_ZIP -Replace '.zip$', '')) \
33+
-Destination $env:JAVA_HOME \
34+
; \
35+
\
36+
Write-Host 'Verifying install ...'; \
37+
Write-Host ' java -version'; java -version; \
38+
Write-Host ' javac -version'; javac -version; \
39+
\
40+
Write-Host 'Removing ...'; \
41+
Remove-Item ojdkbuild.zip -Force; \
42+
\
43+
Write-Host 'Complete.';
Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,43 @@
11
FROM microsoft/windowsservercore
22

3+
# $ProgressPreference: https://github.com/PowerShell/PowerShell/issues/2138#issuecomment-251261324
34
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
45

5-
ENV JAVA_VERSION 1.8.0.111-3
6-
ENV JAVA_ZIP_VERSION 1.8.0-openjdk-1.8.0.111-3.b15
7-
ENV JAVA_SHA256 e080371bf57536668416157660e05d95fe04db15da36234d32bda8e301bb0454
6+
ENV JAVA_HOME C:\\ojdkbuild
7+
RUN $newPath = ('{0}\bin;{1}' -f $env:JAVA_HOME, $env:PATH); \
8+
Write-Host ('Updating PATH: {0}' -f $newPath); \
9+
# Nano Server does not have "[Environment]::SetEnvironmentVariable()"
10+
setx /M PATH $newPath;
811

9-
ENV JAVA_HOME C:\\java-${JAVA_ZIP_VERSION}.ojdkbuild.windows.x86_64
12+
# https://github.com/ojdkbuild/ojdkbuild/releases
13+
ENV JAVA_VERSION 8u111
14+
ENV JAVA_OJDKBUILD_VERSION 1.8.0.111-3
15+
ENV JAVA_OJDKBUILD_ZIP java-1.8.0-openjdk-1.8.0.111-3.b15.ojdkbuild.windows.x86_64.zip
16+
ENV JAVA_OJDKBUILD_SHA256 e080371bf57536668416157660e05d95fe04db15da36234d32bda8e301bb0454
1017

11-
RUN Invoke-WebRequest $('https://github.com/ojdkbuild/ojdkbuild/releases/download/{0}/java-{1}.ojdkbuild.windows.x86_64.zip' -f $env:JAVA_VERSION, $env:JAVA_ZIP_VERSION) -OutFile 'openjdk.zip' -UseBasicParsing ; \
12-
if ((Get-FileHash openjdk.zip -Algorithm sha256).Hash -ne $env:JAVA_SHA256) {exit 1} ; \
13-
Expand-Archive openjdk.zip -DestinationPath C:\ ; \
14-
$env:PATH = '{0}\bin;{1}' -f $env:JAVA_HOME, $env:PATH ; \
15-
[Environment]::SetEnvironmentVariable('PATH', $env:PATH, [EnvironmentVariableTarget]::Machine) ; \
16-
Remove-Item -Path openjdk.zip
18+
RUN $url = ('https://github.com/ojdkbuild/ojdkbuild/releases/download/{0}/{1}' -f $env:JAVA_OJDKBUILD_VERSION, $env:JAVA_OJDKBUILD_ZIP); \
19+
Write-Host ('Downloading {0} ...' -f $url); \
20+
Invoke-WebRequest -Uri $url -OutFile 'ojdkbuild.zip'; \
21+
Write-Host ('Verifying sha256 ({0}) ...' -f $env:JAVA_OJDKBUILD_SHA256); \
22+
if ((Get-FileHash ojdkbuild.zip -Algorithm sha256).Hash -ne $env:JAVA_OJDKBUILD_SHA256) { \
23+
Write-Host 'FAILED!'; \
24+
exit 1; \
25+
}; \
26+
\
27+
Write-Host 'Expanding ...'; \
28+
Expand-Archive ojdkbuild.zip -DestinationPath C:\; \
29+
\
30+
Write-Host 'Renaming ...'; \
31+
Move-Item \
32+
-Path ('C:\{0}' -f ($env:JAVA_OJDKBUILD_ZIP -Replace '.zip$', '')) \
33+
-Destination $env:JAVA_HOME \
34+
; \
35+
\
36+
Write-Host 'Verifying install ...'; \
37+
Write-Host ' java -version'; java -version; \
38+
Write-Host ' javac -version'; javac -version; \
39+
\
40+
Write-Host 'Removing ...'; \
41+
Remove-Item ojdkbuild.zip -Force; \
42+
\
43+
Write-Host 'Complete.';

generate-stackbrew-library.sh

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -109,18 +109,25 @@ for version in "${versions[@]}"; do
109109
Directory: $version
110110
EOE
111111

112-
for variant in alpine; do
113-
[ -f "$version/$variant/Dockerfile" ] || continue
112+
for v in \
113+
alpine \
114+
windows/windowsservercore windows/nanoserver \
115+
; do
116+
dir="$version/$v"
117+
variant="$(basename "$v")"
114118

115-
commit="$(dirCommit "$version/$variant")"
119+
[ -f "$dir/Dockerfile" ] || continue
116120

117-
fullVersion="$(git show "$commit":"$version/$variant/Dockerfile" | awk '$1 == "ENV" && $2 == "JAVA_VERSION" { gsub(/~/, "-", $3); print $3; exit }')"
121+
commit="$(dirCommit "$dir")"
122+
123+
fullVersion="$(git show "$commit":"$dir/Dockerfile" | awk '$1 == "ENV" && $2 == "JAVA_VERSION" { gsub(/~/, "-", $3); print $3; exit }')"
118124

119125
echo
120126
cat <<-EOE
121127
Tags: $(join ', ' $(aliases "$javaVersion" "$javaType" "$fullVersion" "$variant"))
122128
GitCommit: $commit
123-
Directory: $version/$variant
129+
Directory: $dir
124130
EOE
131+
[ "$variant" = "$v" ] || echo "Constraints: $variant"
125132
done
126133
done

update.sh

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,44 @@ EOD
236236
travisEnv='\n - VERSION='"$version"' VARIANT='"$variant$travisEnv"
237237
fi
238238

239+
if [ -d "$version/windows" ]; then
240+
ojdkbuildVersion="$(
241+
git ls-remote --tags 'https://github.com/ojdkbuild/ojdkbuild' \
242+
| cut -d/ -f3 \
243+
| grep -E '^1[.]'"$javaVersion"'[.]' \
244+
| sort -V \
245+
| tail -1
246+
)"
247+
if [ -z "$ojdkbuildVersion" ]; then
248+
echo >&2 "error: '$version/windows' exists, but Java $javaVersion doesn't appear to have a corresponding ojdkbuild release"
249+
exit 1
250+
fi
251+
ojdkbuildZip="$(
252+
curl -fsSL "https://github.com/ojdkbuild/ojdkbuild/releases/tag/$ojdkbuildVersion" \
253+
| grep --only-matching -E 'java-'"$(echo "$ojdkbuildVersion" | cut -d. -f1-3)"'-openjdk-'"$ojdkbuildVersion"'[.][b0-9]+[.]ojdkbuild[.]windows[.]x86_64[.]zip' \
254+
| sort -u
255+
)"
256+
if [ -z "$ojdkbuildZip" ]; then
257+
echo >&2 "error: $ojdkbuildVersion doesn't appear to have the release file we need (yet?)"
258+
exit 1
259+
fi
260+
ojdkbuildSha256="$(curl -fsSL "https://github.com/ojdkbuild/ojdkbuild/releases/download/${ojdkbuildVersion}/${ojdkbuildZip}.sha256" | cut -d' ' -f1)"
261+
if [ -z "$ojdkbuildSha256" ]; then
262+
echo >&2 "error: $ojdkbuildVersion seems to have $ojdkbuildZip, but no sha256 for it"
263+
exit 1
264+
fi
265+
ojdkJavaVersion="$(echo "$ojdkbuildVersion" | cut -d. -f2,4 | cut -d- -f1 | tr . u)" # convert "1.8.0.111-3" into "8u111"
266+
(
267+
set -x
268+
sed -ri \
269+
-e 's/^(ENV JAVA_VERSION) .*/\1 '"$ojdkJavaVersion"'/' \
270+
-e 's/^(ENV JAVA_OJDKBUILD_VERSION) .*/\1 '"$ojdkbuildVersion"'/' \
271+
-e 's/^(ENV JAVA_OJDKBUILD_ZIP) .*/\1 '"$ojdkbuildZip"'/' \
272+
-e 's/^(ENV JAVA_OJDKBUILD_SHA256) .*/\1 '"$ojdkbuildSha256"'/' \
273+
"$version"/windows/*/Dockerfile
274+
)
275+
fi
276+
239277
travisEnv='\n - VERSION='"$version$travisEnv"
240278
done
241279

0 commit comments

Comments
 (0)