# Pre-baked cross-compiler for Windows amd64 Tauri releases (runs on Linux amd64). # All MinGW and Node.js dependencies are installed once here; CI jobs skip apt-get entirely. # Rebuild when: Rust toolchain version changes, Node.js major version changes, # OpenSSL major version changes (used via OPENSSL_STATIC=1), or Tauri CLI changes # that affect bundler system deps. # Tag format: rust-node FROM rust:1.88-slim RUN apt-get update -qq \ && apt-get install -y -qq --no-install-recommends \ ca-certificates \ mingw-w64 \ curl \ nsis \ perl \ make \ jq \ git \ && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ && apt-get install -y --no-install-recommends nodejs \ && rm -rf /var/lib/apt/lists/* # tea (Gitea CLI) can be installed if needed: # RUN curl -sL https://dl.gitea.com/tea/master/tea-master-linux-amd64 -o /usr/local/bin/tea \ # && chmod +x /usr/local/bin/tea # Pre-build libsodium for x86_64-pc-windows-gnu so libsodium-sys-stable # does not attempt a network download at cargo build time (no DNS in CI containers). RUN set -eu \ && SODIUM_VER="1.0.20" \ && curl -fsSL "https://download.libsodium.org/libsodium/releases/libsodium-${SODIUM_VER}.tar.gz" \ | tar -xz -C /tmp \ && cd "/tmp/libsodium-${SODIUM_VER}" \ && ./configure \ --host=x86_64-w64-mingw32 \ --prefix=/usr/x86_64-w64-mingw32 \ --disable-shared \ --enable-static \ && make -j"$(nproc)" \ && make install \ && rm -rf "/tmp/libsodium-${SODIUM_VER}" RUN rustup target add x86_64-pc-windows-gnu