33
44# ---------------- GLOBAL VARS ----------------
55ARG NODE_VERSION=23.10.0
6+ ARG ZSTD_VERSION=1.5.7
67
78ARG GODBOLT_REMOTE=https://github.com/compiler-explorer/compiler-explorer.git
89ARG GODBOLT_SHA=fc1b97ef9325eacbb8100d280aee0b0158a5adca
910
10- ARG IMPL_NANO_BASE=mcr.microsoft.com/powershell
11- ARG IMPL_NANO_TAG=lts-nanoserver-ltsc2022
1211ARG IMPL_GIT_VERSION=2.48.1
1312ARG IMPL_ARTIFACTS_DIR="C:\a rtifacts"
1413
14+ ARG IMPL_NANO_BASE=mcr.microsoft.com/powershell
15+ ARG IMPL_NANO_TAG=lts-nanoserver-ltsc2022
16+
1517# ---------------- NODE JS ----------------
1618FROM ${IMPL_NANO_BASE}:${IMPL_NANO_TAG} as node
1719SHELL ["pwsh" , "-NoLogo" , "-NoProfile" , "-ExecutionPolicy" , "Bypass" , "-Command" ]
@@ -21,7 +23,7 @@ ARG IMPL_ARTIFACTS_DIR
2123
2224RUN Write-Host "Installing NodeJS $env:NODE_VERSION" ; `
2325New-Item -ItemType Directory -Force -Path "C:\T emp" , $env:IMPL_ARTIFACTS_DIR ; `
24- Invoke-WebRequest -Uri https://nodejs.org/download/release/latest /node-v$env:NODE_VERSION-win-x64.zip -OutFile C:\T emp\n odejs.zip ; `
26+ Invoke-WebRequest -Uri https://nodejs.org/download/release/v$env:NODE_VERSION /node-v$env:NODE_VERSION-win-x64.zip -OutFile C:\T emp\n odejs.zip ; `
2527tar -xf C:\T emp\n odejs.zip -C $env:IMPL_ARTIFACTS_DIR ; Remove-Item C:\T emp\n odejs.zip
2628
2729# ---------------- GIT ----------------
@@ -65,24 +67,46 @@ RUN cd $env:IMPL_ARTIFACTS_DIR ; `
6567Write-Host "Building Compiler Explorer" ; `
6668pwsh -File build-win.ps1 -CEWD "$env:IMPL_ARTIFACTS_DIR"
6769
68- # ---------------- FINAL IMAGE ----------------
69- FROM mcr.microsoft.com/windows/nanoserver:ltsc2022
70+ # ---------------- ZSTD ----------------
71+ FROM ${IMPL_NANO_BASE}:${IMPL_NANO_TAG} as zstd
72+ SHELL ["pwsh" , "-NoLogo" , "-NoProfile" , "-ExecutionPolicy" , "Bypass" , "-Command" ]
7073
74+ ARG ZSTD_VERSION
7175ARG IMPL_ARTIFACTS_DIR
72- ARG NODE_VERSION
7376
77+ RUN Write-Host "Installing Git $env:ZSTD_VERSION" ; `
78+ New-Item -ItemType Directory -Force -Path C:\T emp, $env:IMPL_ARTIFACTS_DIR ; `
79+ Invoke-WebRequest -Uri "https://github.com/facebook/zstd/releases/download/v$env:ZSTD_VERSION/zstd-v$env:ZSTD_VERSION-win64.zip" -OutFile C:\T emp\z std.zip ; `
80+ tar -xf C:\T emp\z std.zip -C $env:IMPL_ARTIFACTS_DIR ; `
81+ Remove-Item C:\T emp\z std.zip
82+
83+ # ---------------- FINAL IMAGE ----------------
84+ FROM mcr.microsoft.com/windows/nanoserver:ltsc2022
7485USER ContainerAdministrator
7586
87+ LABEL org.opencontainers.image.title="Compiler Explorer in Windows Nano Server"
88+ LABEL org.opencontainers.image.source=https://github.com/Devsh-Graphics-Programming/Compiler-Explorer-Docker
89+ LABEL org.opencontainers.image.description="Run Compiler Explorer in Windows Nano Server!"
90+ LABEL org.opencontainers.image.licenses=Apache-2.0
91+
92+ ARG IMPL_ARTIFACTS_DIR
93+ ARG NODE_VERSION
94+ COPY --link --from=zstd ["${IMPL_ARTIFACTS_DIR}" , "C:/compress" ]
7695COPY --link --from=node ["${IMPL_ARTIFACTS_DIR}/node-v${NODE_VERSION}-win-x64" , "C:/Node" ]
7796COPY --link --from=compiler-explorer ["${IMPL_ARTIFACTS_DIR}/out/dist" , "C:/Compiler-Explorer" ]
7897COPY --link --from=compiler-explorer ["${IMPL_ARTIFACTS_DIR}/out/dist-bin/dist" , "C:/Compiler-Explorer" ]
7998COPY --link --from=compiler-explorer ["${IMPL_ARTIFACTS_DIR}/out/webpack/static" , "C:/Compiler-Explorer/static" ]
8099
81- ENV NODE_VERSION=${NODE_VERSION} NODE_ENV=production `
82- PATH="C:\W indows\s ystem32;C:\W indows;C:\P rogram Files\P owerShell;C:\N ode"
100+ ARG ZSTD_VERSION
101+
102+ ENV NODE_VERSION=${NODE_VERSION} `
103+ NODE_ENV=production `
104+ ZSTD_VERSION=${ZSTD_VERSION} `
105+ PATH="C:\W indows\s ystem32;C:\W indows;C:\N ode;C:\c ompress\z std-v${ZSTD_VERSION}-win64"
83106
84107EXPOSE 10240
85- WORKDIR C:\\ Compiler-Explorer
86- ENTRYPOINT ["cmd.exe" , "/C" ]
87- CMD ["node" , "--no-warnings" , "--no-deprecation" , "--import=tsx" , "./app.js" , "--language" , "python" ]
88- # for instance, <...> --language HLSL; note we are running without any compilers in this example, one have to provide them
108+ COPY unpack.bat .
109+ WORKDIR C:\C ompiler-Explorer
110+
111+ ENTRYPOINT ["cmd.exe" , "/S" , "/K" ]
112+ CMD ["C:/unpack.bat" ]
0 commit comments