Files
docker-nodejs/Dockerfile.node18
2025-08-12 21:37:57 +02:00

50 lines
1.7 KiB
Docker

# 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="<you@example.com>"
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" ]