Files
mumble-web2/docker/windows-release-builder.Dockerfile
T
restitux 55d03fcc27
Build Mumble Web 2 / windows_build (push) Failing after 2s
Build Mumble Web 2 / linux_build (push) Has been cancelled
add git and dioxus cli to container
2025-12-02 17:26:22 -07:00

72 lines
3.1 KiB
Docker

# escape=`
# Use a Windows Server Core 2025 image that matches our build host.
# If the version doesn't match the build host we cannot run
# this container. I'm not sure with what specificity it has to
# match, so let's pin this and then upgrade it as we upgrade
# the host.
FROM mcr.microsoft.com/windows/servercore:10.0.26100.7171
ENV CMAKE_VERSION=3.31.10
ENV CMAKE_ARCH=windows-x86_64
# Restore the default Windows shell for correct batch processing.
SHELL ["cmd", "/S", "/C"]
RUN curl -SL --output vs_buildtools.exe https://aka.ms/vs/17/release/vs_buildtools.exe `
&& ( start /w vs_buildtools.exe --quiet --wait --norestart --nocache `
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" `
--add Microsoft.VisualStudio.Workload.NativeDesktop `
|| IF "%ERRORLEVEL%"=="3010" EXIT 0 ) `
&& for %F in ("%TEMP%\dd_*.log") do @echo ===== %F ===== & type "%F" `
&& del /Q "%TEMP%\dd_*.log" `
&& del /Q vs_buildtools.exe
RUN powershell -NoProfile -Command `
$ErrorActionPreference = 'Stop'; `
$url = \"https://github.com/Kitware/CMake/releases/download/v$env:CMAKE_VERSION/cmake-$env:CMAKE_VERSION-$env:CMAKE_ARCH.zip\"; `
$out = 'C:\\cmake.zip'; `
(New-Object System.Net.WebClient).DownloadFile($url, $out); `
Expand-Archive -Path $out -DestinationPath 'C:\\'; `
Remove-Item $out; `
$cmakeDir = \"C:\\cmake-$env:CMAKE_VERSION-$env:CMAKE_ARCH\\bin\"; `
[Environment]::SetEnvironmentVariable('PATH', $cmakeDir + ';' + $env:PATH, 'Machine')
RUN powershell -Command `
$ErrorActionPreference = 'Stop'; `
Invoke-WebRequest -Uri https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe -OutFile rustup-init.exe; `
.\rustup-init.exe -y --default-toolchain stable; `
Remove-Item .\rustup-init.exe
# Install Chocolatey
RUN ["powershell.exe", "-NoLogo", "-NoProfile", "-Command", `
"Set-ExecutionPolicy Bypass -Scope Process; `
[System.Net.ServicePointManager]::SecurityProtocol = `
[System.Net.SecurityProtocolType]::Tls12; `
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))" `
]
# Install Git and Rustup via Chocolatey
RUN ["powershell.exe", "-NoLogo", "-NoProfile", "-Command", `
"choco install git -y --no-progress; `
choco install rustup.install -y --no-progress" `
]
# Install stable Rust toolchain
RUN ["powershell.exe", "-NoLogo", "-NoProfile", "-Command", `
"$env:Path += ';C:\\Users\\ContainerAdministrator\\.cargo\\bin'; `
rustup toolchain install stable-x86_64-pc-windows-msvc; `
rustup default stable-x86_64-pc-windows-msvc" `
]
# Install dioxus-cli from git HEAD with cargo
RUN ["powershell.exe", "-NoLogo", "-NoProfile", "-Command", `
"$env:Path += ';C:\\Users\\ContainerAdministrator\\.cargo\\bin'; `
cargo install --git https://github.com/DioxusLabs/dioxus dioxus-cli" `
]
# Define the entry point for the docker container.
# This entry point starts the developer command prompt and launches the PowerShell shell.
ENTRYPOINT ["C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\Common7\\Tools\\VsDevCmd.bat", "&&", "powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]