# Build image for Electron Windows builds (Node 18) FROM debian:bookworm-slim LABEL org.opencontainers.image.title="electron-builder-windows (Node 18)" LABEL org.opencontainers.image.source="https://github.com/MrUnknownDE/docker-nodejs-win" LABEL org.opencontainers.image.description="Linux container for building Windows Electron apps using electron-builder (Node 18)" LABEL maintainer="" ENV DEBIAN_FRONTEND=noninteractive \ WINEDEBUG=-all \ WINEDLLOVERRIDES="winemenubuilder.exe=d" \ NPM_CONFIG_LOGLEVEL=warn # 1) Basis-Tools + NodeSource prerequisites RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates curl gnupg2 dirmngr \ && rm -rf /var/lib/apt/lists/* # 2) Node.js 18 via NodeSource RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \ && apt-get update && apt-get install -y --no-install-recommends \ nodejs \ && corepack enable \ && rm -rf /var/lib/apt/lists/* # 3) 32-bit Arch für wine32 + alle Build-Dependencies RUN dpkg --add-architecture i386 \ && apt-get update && apt-get install -y --no-install-recommends \ # Build basics build-essential python3 git file xz-utils zip p7zip-full fakeroot \ # electron-builder extras icnsutils graphicsmagick rpm \ # Windows / signing toolchain g++-mingw-w64 nsis osslsigncode \ # Wine & Mono (wichtig: 'wine' Metapackage dazu!) wine wine32 wine64 mono-complete winbind cabextract \ # headless xvfb fontconfig \ && rm -rf /var/lib/apt/lists/* RUN node -v \ && npm -v \ && npx --yes electron-builder --version || true \ && (command -v wine >/dev/null && wine --version || wine64 --version) \ && mono --version \ && makensis -VERSION WORKDIR /workspace CMD [ "bash" ]