Skip to content

Commit 9a84524

Browse files
Update 7-Zip and Node versions in Windows Server Core images (#1257)
1 parent 7e162fc commit 9a84524

File tree

2 files changed

+59
-41
lines changed

2 files changed

+59
-41
lines changed
Lines changed: 34 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1+
# escape=`
2+
13
FROM mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2022-helix-amd64
24

35
# Install 7zip
4-
ENV ZIP7_VERSION=1900
6+
ENV ZIP7_VERSION=2408
57

6-
RUN curl -SL --output %TEMP%\7zip-x64.exe https://www.7-zip.org/a/7z%ZIP7_VERSION%-x64.exe \
7-
&& mkdir C:\7z \
8-
&& %TEMP%\7zip-x64.exe /S /D="C:\7z" \
8+
RUN curl -SL --output %TEMP%\7zip-x64.exe https://www.7-zip.org/a/7z%ZIP7_VERSION%-x64.exe `
9+
&& mkdir C:\7z `
10+
&& %TEMP%\7zip-x64.exe /S /D="C:\7z" `
911
&& setx PATH "%PATH%;C:\7z"
1012

1113
# Install arial font for chrome
@@ -15,36 +17,43 @@ COPY arial.ttf c:/windows/fonts
1517
ENV GIT_VERSION=2.34.1
1618
ENV GIT_INSTALLER=MinGit-${GIT_VERSION}-64-bit.zip
1719

18-
RUN curl -SL --output %TEMP%\%GIT_INSTALLER% https://github.com/git-for-windows/git/releases/download/v2.34.1.windows.1/%GIT_INSTALLER% \
19-
&& mkdir C:\git \
20-
&& tar -C C:\git -zxf %TEMP%\%GIT_INSTALLER% \
20+
RUN curl -SL --output %TEMP%\%GIT_INSTALLER% https://github.com/git-for-windows/git/releases/download/v%GIT_VERSION%.windows.1/%GIT_INSTALLER% `
21+
&& mkdir C:\git `
22+
&& tar -C C:\git -zxf %TEMP%\%GIT_INSTALLER% `
2123
&& setx PATH "%PATH%;C:\git\cmd"
2224

2325
# fix certificates for python to be able to download emscripten files
2426
RUN certutil -generateSSTFromWU roots.sst && certutil -addstore -f root roots.sst && del roots.sst
2527

2628
# Install Emscripten toolchain
27-
ENV EMSCRIPTEN_VERSION=3.1.34
28-
ENV EMSCRIPTEN_PATH="C:\emscripten"
29-
ENV EMSDK_PATH="C:\emscripten\emsdk"
30-
31-
RUN mkdir %EMSCRIPTEN_PATH% \
32-
&& cd %EMSCRIPTEN_PATH% \
33-
&& git clone https://github.com/emscripten-core/emsdk.git %EMSDK_PATH%
34-
RUN cd %EMSDK_PATH% \
35-
&& git checkout %EMSCRIPTEN_VERSION% \
36-
&& .\emsdk install %EMSCRIPTEN_VERSION%-upstream \
37-
&& .\emsdk activate %EMSCRIPTEN_VERSION%-upstream \
29+
ENV `
30+
EMSCRIPTEN_VERSION=3.1.34 `
31+
EMSCRIPTEN_PATH="C:\emscripten" `
32+
EMSDK_PATH="C:\emscripten\emsdk"
33+
34+
RUN mkdir %EMSCRIPTEN_PATH% `
35+
&& cd %EMSCRIPTEN_PATH% `
36+
&& git clone https://github.com/emscripten-core/emsdk.git %EMSDK_PATH% `
37+
&& cd %EMSDK_PATH% `
38+
&& git checkout %EMSCRIPTEN_VERSION% `
39+
&& .\emsdk install %EMSCRIPTEN_VERSION%-upstream `
40+
&& .\emsdk activate %EMSCRIPTEN_VERSION%-upstream `
3841
&& .\upstream\emscripten\embuilder.bat build MINIMAL
3942

40-
# install Node JS
41-
ENV NODE_VERSION 17.3.1
43+
# Install latest 18.x Node JS
44+
ENV NODE_RELEASE=18
4245

43-
RUN curl -SL --output %TEMP%\nodejs.msi https://nodejs.org/dist/v%NODE_VERSION%/node-v%NODE_VERSION%-x64.msi
44-
RUN msiexec /i %TEMP%\nodejs.msi /quiet /passive /qn /norestart
46+
RUN powershell -Command " `
47+
$ErrorActionPreference = 'Stop'; `
48+
$ProgressPreference = 'SilentlyContinue'; `
49+
`
50+
$json = Invoke-RestMethod -Uri 'https://nodejs.org/dist/index.json'; `
51+
$nodeVersion = ($json | ForEach-Object { if ($_.version.StartsWith(\"v$env:NODE_RELEASE.\")) { $_ } } | Sort-Object -Property version -Descending | Select-Object -First 1).version.TrimStart('v'); `
52+
Invoke-WebRequest -Uri https://nodejs.org/dist/v$nodeVersion/node-v$nodeVersion-x64.msi -OutFile $env:TEMP\nodejs.msi; `
53+
Start-Process msiexec.exe -ArgumentList '/i', $env:TEMP\nodejs.msi, '/quiet', '/passive', '/qn', '/norestart' -NoNewWindow -Wait"
4554

4655
# install latest jsvu and v8 engine
47-
RUN npm install jsvu -g
48-
RUN npm exec -c "jsvu --os=win64 --engines=v8"
49-
RUN setx PATH "%PATH%;%USERPROFILE%\.jsvu\bin"
56+
RUN npm install jsvu -g `
57+
&& npm exec -c "jsvu --os=win64 --engines=v8" `
58+
&& setx PATH "%PATH%;%USERPROFILE%\.jsvu\bin"
5059
RUN v8 -e "console.log(version());quit();"
Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1+
# escape=`
2+
13
FROM mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2022-helix-amd64
24

35
# Install 7zip
4-
ENV ZIP7_VERSION=1900
6+
ENV ZIP7_VERSION=2408
57

6-
RUN curl -SL --output %TEMP%\7zip-x64.exe https://www.7-zip.org/a/7z%ZIP7_VERSION%-x64.exe \
7-
&& mkdir C:\7z \
8-
&& %TEMP%\7zip-x64.exe /S /D="C:\7z" \
8+
RUN curl -SL --output %TEMP%\7zip-x64.exe https://www.7-zip.org/a/7z%ZIP7_VERSION%-x64.exe `
9+
&& mkdir C:\7z `
10+
&& %TEMP%\7zip-x64.exe /S /D="C:\7z" `
911
&& setx PATH "%PATH%;C:\7z"
1012

1113
# Install arial font for chrome
@@ -15,25 +17,32 @@ COPY arial.ttf c:/windows/fonts
1517
ENV GIT_VERSION=2.34.1
1618
ENV GIT_INSTALLER=MinGit-${GIT_VERSION}-64-bit.zip
1719

18-
RUN curl -SL --output %TEMP%\%GIT_INSTALLER% https://github.com/git-for-windows/git/releases/download/v2.34.1.windows.1/%GIT_INSTALLER% \
19-
&& mkdir C:\git \
20-
&& tar -C C:\git -zxf %TEMP%\%GIT_INSTALLER% \
20+
RUN curl -SL --output %TEMP%\%GIT_INSTALLER% https://github.com/git-for-windows/git/releases/download/v%GIT_VERSION%.windows.1/%GIT_INSTALLER% `
21+
&& mkdir C:\git `
22+
&& tar -C C:\git -zxf %TEMP%\%GIT_INSTALLER% `
2123
&& setx PATH "%PATH%;C:\git\cmd"
2224

23-
# install Node JS
24-
ENV NODE_VERSION 18.17.1
25+
# Install latest 18.x Node JS
26+
ENV NODE_RELEASE=18
2527

26-
RUN curl -SL --output %TEMP%\nodejs.msi https://nodejs.org/dist/v%NODE_VERSION%/node-v%NODE_VERSION%-x64.msi
27-
RUN msiexec /i %TEMP%\nodejs.msi /quiet /passive /qn /norestart
28+
RUN powershell -Command " `
29+
$ErrorActionPreference = 'Stop'; `
30+
$ProgressPreference = 'SilentlyContinue'; `
31+
`
32+
$json = Invoke-RestMethod -Uri 'https://nodejs.org/dist/index.json'; `
33+
$nodeVersion = ($json | ForEach-Object { if ($_.version.StartsWith(\"v$env:NODE_RELEASE.\")) { $_ } } | Sort-Object -Property version -Descending | Select-Object -First 1).version.TrimStart('v'); `
34+
Invoke-WebRequest -Uri https://nodejs.org/dist/v$nodeVersion/node-v$nodeVersion-x64.msi -OutFile $env:TEMP\nodejs.msi; `
35+
Start-Process msiexec.exe -ArgumentList '/i', $env:TEMP\nodejs.msi, '/quiet', '/passive', '/qn', '/norestart' -NoNewWindow -Wait"
2836

2937
# install latest jsvu and v8 engine
30-
RUN npm install jsvu -g
31-
RUN npm exec -c "jsvu --os=win64 --engines=v8"
32-
RUN setx PATH "%PATH%;%USERPROFILE%\.jsvu\bin"
38+
RUN npm install jsvu -g `
39+
&& npm exec -c "jsvu --os=win64 --engines=v8" `
40+
&& setx PATH "%PATH%;%USERPROFILE%\.jsvu\bin"
3341
RUN v8 -e "console.log(version());quit();"
3442

3543
# install vc redistributable for llvm 19
3644
ENV VC_REDIST_VERSION 17
37-
RUN curl -SL --output %TEMP%\vc_redist.x64.exe https://aka.ms/vs/%VC_REDIST_VERSION%/release/vc_redist.x64.exe \
38-
&& %TEMP%\vc_redist.x64.exe /install /passive /norestart /wait \
45+
46+
RUN curl -SL --output %TEMP%\vc_redist.x64.exe https://aka.ms/vs/%VC_REDIST_VERSION%/release/vc_redist.x64.exe `
47+
&& %TEMP%\vc_redist.x64.exe /install /passive /norestart /wait `
3948
&& del /q %TEMP%\vc_redist.x64.exe

0 commit comments

Comments
 (0)