winbuildenv (sha256:f1d2c03297beb4953e3b72051940d359ffd47025c9f4c126f4a6995fc49a742a)

Published 2026-09-08 20:27:18 +00:00 by mjmanley in docker/winbuildenv

Installation

docker pull code.wisesourcery.com/docker/winbuildenv@sha256:f1d2c03297beb4953e3b72051940d359ffd47025c9f4c126f4a6995fc49a742a
sha256:f1d2c03297beb4953e3b72051940d359ffd47025c9f4c126f4a6995fc49a742a

Image layers

# debian.sh --arch 'amd64' out/ 'trixie' '@1787529600'
ARG DEBIAN_FRONTEND=noninteractive
RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c apt-get update && apt-get install -y --no-install-recommends autoconf autoconf-archive automake bison build-essential ca-certificates cmake curl file flex gettext git gperf libtool make nasm ninja-build p7zip-full patch perl pkgconf python3 python3-jinja2 python3-setuptools tar texinfo unzip xz-utils zip && rm -rf /var/lib/apt/lists/* # buildkit
RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c apt-get update && apt-get install -y --no-install-recommends binutils-mingw-w64 g++-mingw-w64-i686-win32 g++-mingw-w64-ucrt64 gcc-mingw-w64-i686-win32 gcc-mingw-w64-ucrt64 mingw-w64-common mingw-w64-i686-dev mingw-w64-tools mingw-w64-ucrt64-dev && rm -rf /var/lib/apt/lists/* # buildkit
RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c set -eux; for tool in /usr/bin/x86_64-w64-mingw32ucrt-*; do base=$(basename "$tool"); ln -sf "$tool" "/usr/local/bin/x86_64-w64-mingw32-${base#x86_64-w64-mingw32ucrt-}"; done; [ -e /usr/x86_64-w64-mingw32 ] || ln -s /usr/x86_64-w64-mingw32ucrt /usr/x86_64-w64-mingw32; x86_64-w64-mingw32-gcc --version; i686-w64-mingw32-gcc --version # buildkit
RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c set -eux; for tool in gcc g++ cpp; do ln -sf "/usr/bin/x86_64-w64-mingw32ucrt-${tool}" "/usr/bin/x86_64-w64-mingw32-${tool}"; done; printf '#include <windows.h>\n1 VERSIONINFO FILEVERSION 1,0,0,0 { }\n' > /tmp/rc-probe.rc; /usr/bin/x86_64-w64-mingw32-windres -c 65001 /tmp/rc-probe.rc /tmp/rc-probe.o; i686-w64-mingw32-windres -c 65001 /tmp/rc-probe.rc /tmp/rc-probe32.o; rm -f /tmp/rc-probe.rc /tmp/rc-probe.o /tmp/rc-probe32.o # buildkit
RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c set -eux; update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-win32; update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-win32 # buildkit
RUN |1 DEBIAN_FRONTEND=noninteractive /bin/sh -c apt-get update && apt-get install -y --no-install-recommends gdb gdb-mingw-w64 gdb-mingw-w64-target && rm -rf /var/lib/apt/lists/* # buildkit
ARG VCPKG_REF=118bba14b94bc040c098c0c15e63c142148c05ca
ENV VCPKG_ROOT=/opt/vcpkg VCPKG_DISABLE_METRICS=1 VCPKG_DEFAULT_HOST_TRIPLET=x64-linux
RUN |2 DEBIAN_FRONTEND=noninteractive VCPKG_REF=118bba14b94bc040c098c0c15e63c142148c05ca /bin/sh -c git clone https://github.com/microsoft/vcpkg.git "$VCPKG_ROOT" && git -C "$VCPKG_ROOT" checkout --detach "$VCPKG_REF" && "$VCPKG_ROOT"/bootstrap-vcpkg.sh -disableMetrics && ln -s "$VCPKG_ROOT"/vcpkg /usr/local/bin/vcpkg # buildkit
ARG NPCAP_SDK_URL=
RUN |3 DEBIAN_FRONTEND=noninteractive VCPKG_REF=118bba14b94bc040c098c0c15e63c142148c05ca NPCAP_SDK_URL= /bin/sh -c set -eux; if [ -z "$NPCAP_SDK_URL" ]; then echo "no NPCAP_SDK_URL -- libpcap will build without capture"; exit 0; fi; mkdir -p /tmp/npcap /opt/npcap-sdk; curl -fsSL -o /tmp/npcap.zip "$NPCAP_SDK_URL"; unzip -q /tmp/npcap.zip -d /tmp/npcap; inc="$(find /tmp/npcap -maxdepth 3 -type d -iname Include | head -1)"; [ -n "$inc" ] || { echo "no Include/ directory in $NPCAP_SDK_URL" >&2; exit 1; }; cp -a "$(dirname "$inc")"/. /opt/npcap-sdk/; rm -rf /tmp/npcap /tmp/npcap.zip; ls /opt/npcap-sdk # buildkit
COPY vcpkg.json /opt/winbuildenv/vcpkg.json # buildkit
COPY overlay-ports /opt/winbuildenv/overlay-ports # buildkit
COPY overlay-triplets /opt/winbuildenv/overlay-triplets # buildkit
COPY scripts/build-libs.sh /opt/winbuildenv/scripts/build-libs.sh # buildkit
RUN |3 DEBIAN_FRONTEND=noninteractive VCPKG_REF=118bba14b94bc040c098c0c15e63c142148c05ca NPCAP_SDK_URL= /bin/sh -c VCPKG_DOWNLOADS=/vcpkg-downloads /opt/winbuildenv/scripts/build-libs.sh && rm -rf "$VCPKG_ROOT"/buildtrees "$VCPKG_ROOT"/packages /tmp/vcpkg-buildtrees # buildkit
ARG DEBIAN_FRONTEND=noninteractive
ARG WITH_WINE=1
ARG NODE_VERSION=24.20.0
ARG NODE_SHA256=2f2c0da162318f0de47665410c7c8c2ed3d36c8f3105de4bbc61176c70a7cbf2
ARG DOTNET_VERSION=10.0.400
ARG DOTNET_SHA512=1033977dd837150e0814cf0c5d5b17ceb63925fda7ba2158b47258a4bd7c048cf82eac3bc1166f3146f53124a3f5fba09db1de1260d2ce96399860303b404b48
ARG DOTNET_RIDS=win-x64 win-x86
RUN |9 DEBIAN_FRONTEND=noninteractive VCPKG_REF=118bba14b94bc040c098c0c15e63c142148c05ca NPCAP_SDK_URL= WITH_WINE=1 NODE_VERSION=24.20.0 NODE_SHA256=2f2c0da162318f0de47665410c7c8c2ed3d36c8f3105de4bbc61176c70a7cbf2 DOTNET_VERSION=10.0.400 DOTNET_SHA512=1033977dd837150e0814cf0c5d5b17ceb63925fda7ba2158b47258a4bd7c048cf82eac3bc1166f3146f53124a3f5fba09db1de1260d2ce96399860303b404b48 DOTNET_RIDS=win-x64 win-x86 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends libdouble-conversion3 libfontconfig1 libfreetype6 libgl1 libpcre2-16-0 libprotobuf32t64 libprotoc32t64 libx11-6 libx11-xcb1 libxkbcommon0 libxkbcommon-x11-0 && rm -rf /var/lib/apt/lists/* # buildkit
COPY /opt/qt-host /opt/qt-host # buildkit
COPY /opt/qt /opt/qt # buildkit
COPY /opt/winbuildenv/mingw-case-shim /opt/winbuildenv/mingw-case-shim # buildkit
COPY /opt/wx-host /opt/wx-host # buildkit
COPY cmake /opt/winbuildenv/cmake # buildkit
COPY scripts /opt/winbuildenv/scripts # buildkit
RUN |9 DEBIAN_FRONTEND=noninteractive VCPKG_REF=118bba14b94bc040c098c0c15e63c142148c05ca NPCAP_SDK_URL= WITH_WINE=1 NODE_VERSION=24.20.0 NODE_SHA256=2f2c0da162318f0de47665410c7c8c2ed3d36c8f3105de4bbc61176c70a7cbf2 DOTNET_VERSION=10.0.400 DOTNET_SHA512=1033977dd837150e0814cf0c5d5b17ceb63925fda7ba2158b47258a4bd7c048cf82eac3bc1166f3146f53124a3f5fba09db1de1260d2ce96399860303b404b48 DOTNET_RIDS=win-x64 win-x86 /bin/sh -c if [ "$WITH_WINE" = "1" ]; then dpkg --add-architecture i386 && apt-get update && apt-get install -y --no-install-recommends wine wine64 wine32:i386 && rm -rf /var/lib/apt/lists/*; fi # buildkit
RUN |9 DEBIAN_FRONTEND=noninteractive VCPKG_REF=118bba14b94bc040c098c0c15e63c142148c05ca NPCAP_SDK_URL= WITH_WINE=1 NODE_VERSION=24.20.0 NODE_SHA256=2f2c0da162318f0de47665410c7c8c2ed3d36c8f3105de4bbc61176c70a7cbf2 DOTNET_VERSION=10.0.400 DOTNET_SHA512=1033977dd837150e0814cf0c5d5b17ceb63925fda7ba2158b47258a4bd7c048cf82eac3bc1166f3146f53124a3f5fba09db1de1260d2ce96399860303b404b48 DOTNET_RIDS=win-x64 win-x86 /bin/sh -c set -eux; cd /tmp; arch="$(dpkg --print-architecture)"; case "$arch" in amd64) node_arch=x64 ;; arm64) node_arch=arm64 ;; *) echo "no Node.js binary tarball for $arch" >&2; exit 1 ;; esac; tarball="node-v${NODE_VERSION}-linux-${node_arch}.tar.xz"; curl -fsSLO "https://nodejs.org/dist/v${NODE_VERSION}/${tarball}"; if [ "$node_arch" = x64 ]; then echo "${NODE_SHA256} ${tarball}" | sha256sum -c -; else curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/SHASUMS256.txt" | grep " ${tarball}\$" | sha256sum -c -; fi; mkdir -p /opt/node; tar -xJf "$tarball" -C /opt/node --strip-components=1; rm -f "$tarball"; rm -rf /opt/node/share/doc /opt/node/share/man /opt/node/CHANGELOG.md; for tool in node npm npx corepack; do ln -sf "/opt/node/bin/$tool" "/usr/local/bin/$tool"; done; node --version; npm --version # buildkit
RUN |9 DEBIAN_FRONTEND=noninteractive VCPKG_REF=118bba14b94bc040c098c0c15e63c142148c05ca NPCAP_SDK_URL= WITH_WINE=1 NODE_VERSION=24.20.0 NODE_SHA256=2f2c0da162318f0de47665410c7c8c2ed3d36c8f3105de4bbc61176c70a7cbf2 DOTNET_VERSION=10.0.400 DOTNET_SHA512=1033977dd837150e0814cf0c5d5b17ceb63925fda7ba2158b47258a4bd7c048cf82eac3bc1166f3146f53124a3f5fba09db1de1260d2ce96399860303b404b48 DOTNET_RIDS=win-x64 win-x86 /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends libicu76; rm -rf /var/lib/apt/lists/*; cd /tmp; arch="$(dpkg --print-architecture)"; case "$arch" in amd64) dotnet_arch=x64 ;; arm64) dotnet_arch=arm64 ;; *) echo "no .NET SDK binary tarball for $arch" >&2; exit 1 ;; esac; tarball="dotnet-sdk-${DOTNET_VERSION}-linux-${dotnet_arch}.tar.gz"; url="https://builds.dotnet.microsoft.com/dotnet/Sdk/${DOTNET_VERSION}/${tarball}"; curl -fsSLO "$url"; if [ "$dotnet_arch" = x64 ]; then echo "${DOTNET_SHA512} ${tarball}" | sha512sum -c -; else curl -fsSL "${url}.sha512" | sha512sum -c -; fi; mkdir -p /opt/dotnet; tar -xzf "$tarball" -C /opt/dotnet; rm -f "$tarball"; ln -sf /opt/dotnet/dotnet /usr/local/bin/dotnet; dotnet --info # buildkit
ENV DOTNET_ROOT=/opt/dotnet DOTNET_CLI_TELEMETRY_OPTOUT=1 DOTNET_NOLOGO=1 DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 PATH=/root/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |9 DEBIAN_FRONTEND=noninteractive VCPKG_REF=118bba14b94bc040c098c0c15e63c142148c05ca NPCAP_SDK_URL= WITH_WINE=1 NODE_VERSION=24.20.0 NODE_SHA256=2f2c0da162318f0de47665410c7c8c2ed3d36c8f3105de4bbc61176c70a7cbf2 DOTNET_VERSION=10.0.400 DOTNET_SHA512=1033977dd837150e0814cf0c5d5b17ceb63925fda7ba2158b47258a4bd7c048cf82eac3bc1166f3146f53124a3f5fba09db1de1260d2ce96399860303b404b48 DOTNET_RIDS=win-x64 win-x86 /bin/sh -c set -eux; if [ -z "$DOTNET_RIDS" ]; then echo "DOTNET_RIDS empty -- skipping"; exit 0; fi; export NUGET_PACKAGES=/tmp/nuget-prewarm; cd /tmp; dotnet new console -o prewarm >/dev/null; cd /tmp/prewarm; for rid in $DOTNET_RIDS; do dotnet publish -c Release -r "$rid" --self-contained -p:PublishReadyToRun=true -p:PublishSingleFile=true -o /tmp/prewarm-out >/dev/null; done; for dir in "$NUGET_PACKAGES"/*/*/; do id="$(sed -n 's@.*<id>\(.*\)</id>.*@\1@p' "$dir"*.nuspec | head -1)"; ver="$(basename "$dir")"; mkdir -p "/opt/dotnet/packs/$id"; cp -r "$dir" "/opt/dotnet/packs/$id/$ver"; rm -f "/opt/dotnet/packs/$id/$ver"/*.nupkg "/opt/dotnet/packs/$id/$ver"/*.nupkg.sha512 "/opt/dotnet/packs/$id/$ver"/.nupkg.metadata "/opt/dotnet/packs/$id/$ver"/.signature.p7s; echo "baked in $id $ver"; done; rm -rf "$NUGET_PACKAGES" /tmp/prewarm /tmp/prewarm-out /root/.nuget/packages # buildkit
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
ENV PATH=/opt/winbuildenv/scripts:/root/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |9 DEBIAN_FRONTEND=noninteractive VCPKG_REF=118bba14b94bc040c098c0c15e63c142148c05ca NPCAP_SDK_URL= WITH_WINE=1 NODE_VERSION=24.20.0 NODE_SHA256=2f2c0da162318f0de47665410c7c8c2ed3d36c8f3105de4bbc61176c70a7cbf2 DOTNET_VERSION=10.0.400 DOTNET_SHA512=1033977dd837150e0814cf0c5d5b17ceb63925fda7ba2158b47258a4bd7c048cf82eac3bc1166f3146f53124a3f5fba09db1de1260d2ce96399860303b404b48 DOTNET_RIDS=win-x64 win-x86 /bin/sh -c ln -sf /opt/winbuildenv/scripts/setvars32.sh /usr/local/bin/setvars32.sh && ln -sf /opt/winbuildenv/scripts/setvars64.sh /usr/local/bin/setvars64.sh && echo '. /opt/winbuildenv/scripts/setvars64.sh' > /etc/profile.d/winbuildenv.sh # buildkit
RUN |9 DEBIAN_FRONTEND=noninteractive VCPKG_REF=118bba14b94bc040c098c0c15e63c142148c05ca NPCAP_SDK_URL= WITH_WINE=1 NODE_VERSION=24.20.0 NODE_SHA256=2f2c0da162318f0de47665410c7c8c2ed3d36c8f3105de4bbc61176c70a7cbf2 DOTNET_VERSION=10.0.400 DOTNET_SHA512=1033977dd837150e0814cf0c5d5b17ceb63925fda7ba2158b47258a4bd7c048cf82eac3bc1166f3146f53124a3f5fba09db1de1260d2ce96399860303b404b48 DOTNET_RIDS=win-x64 win-x86 /bin/sh -c ln -sf /opt/winbuildenv/scripts/windeployqt /opt/qt/bin/windeployqt && ln -sf /opt/winbuildenv/scripts/windeployqt /opt/qt/bin/windeployqt6 # buildkit
RUN |9 DEBIAN_FRONTEND=noninteractive VCPKG_REF=118bba14b94bc040c098c0c15e63c142148c05ca NPCAP_SDK_URL= WITH_WINE=1 NODE_VERSION=24.20.0 NODE_SHA256=2f2c0da162318f0de47665410c7c8c2ed3d36c8f3105de4bbc61176c70a7cbf2 DOTNET_VERSION=10.0.400 DOTNET_SHA512=1033977dd837150e0814cf0c5d5b17ceb63925fda7ba2158b47258a4bd7c048cf82eac3bc1166f3146f53124a3f5fba09db1de1260d2ce96399860303b404b48 DOTNET_RIDS=win-x64 win-x86 /bin/sh -c /opt/winbuildenv/scripts/check-host-qt.sh # buildkit
RUN |9 DEBIAN_FRONTEND=noninteractive VCPKG_REF=118bba14b94bc040c098c0c15e63c142148c05ca NPCAP_SDK_URL= WITH_WINE=1 NODE_VERSION=24.20.0 NODE_SHA256=2f2c0da162318f0de47665410c7c8c2ed3d36c8f3105de4bbc61176c70a7cbf2 DOTNET_VERSION=10.0.400 DOTNET_SHA512=1033977dd837150e0814cf0c5d5b17ceb63925fda7ba2158b47258a4bd7c048cf82eac3bc1166f3146f53124a3f5fba09db1de1260d2ce96399860303b404b48 DOTNET_RIDS=win-x64 win-x86 /bin/sh -c mkdir -p /opt/plxlib /work # buildkit
WORKDIR /work
ENTRYPOINT ["/opt/winbuildenv/scripts/entrypoint.sh"]
CMD []
Details
Container
2026-09-08 20:27:18 +00:00
3
OCI / Docker
linux/amd64
3.1 GiB
Versions (1) View all
latest 2026-09-08