bvandeusen
  • Joined on 2026-05-30

ci-tauri-win (latest)

Published 2026-08-31 01:03:50 -04:00 by bvandeusen

Installation

docker pull git.fabledsword.com/bvandeusen/ci-tauri-win:latest
sha256:855bd071bdb87853ffc1e08a9b2081bda9291d5359e2b13e9ee7d170b8b8327f

About this package

CI image: Rust + Node + cargo-xwin + LLVM/lld + NSIS. Cross-compiles a Tauri v2 app to a Windows NSIS installer from Linux.

Image Layers

# debian.sh --arch 'amd64' out/ 'bookworm' '@1787529600'
LABEL org.opencontainers.image.source=https://git.fabledsword.com/bvandeusen/CI-runner org.opencontainers.image.description=CI image: Rust + Node + cargo-xwin + LLVM/lld + NSIS. Cross-compiles a Tauri v2 app to a Windows NSIS installer from Linux. org.opencontainers.image.licenses=MIT
SHELL [/bin/bash -eo pipefail -c]
ARG NODE_MAJOR
ARG RUST_VERSION
ARG TAURI_CLI_VERSION
ARG CARGO_XWIN_VERSION
ARG RUNNER_UID
ARG RUNNER_USER
ENV RUSTUP_HOME=/opt/rustup CARGO_HOME=/opt/cargo XWIN_CACHE_DIR=/opt/xwin PATH=/opt/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV XWIN_ACCEPT_LICENSE=1
COPY scripts/install-common.sh /tmp/install-common.sh # buildkit
RUN |6 NODE_MAJOR=24 RUST_VERSION=1.97.1 TAURI_CLI_VERSION=2.11.4 CARGO_XWIN_VERSION=0.18.4 RUNNER_UID=1001 RUNNER_USER=runner /bin/bash -eo pipefail -c NODE_MAJOR=${NODE_MAJOR} bash /tmp/install-common.sh && rm /tmp/install-common.sh # buildkit
RUN |6 NODE_MAJOR=24 RUST_VERSION=1.97.1 TAURI_CLI_VERSION=2.11.4 CARGO_XWIN_VERSION=0.18.4 RUNNER_UID=1001 RUNNER_USER=runner /bin/bash -eo pipefail -c apt-get update && apt-get install -y --no-install-recommends build-essential clang libssl-dev lld llvm nsis pkg-config && rm -rf /var/lib/apt/lists/* # buildkit
RUN |6 NODE_MAJOR=24 RUST_VERSION=1.97.1 TAURI_CLI_VERSION=2.11.4 CARGO_XWIN_VERSION=0.18.4 RUNNER_UID=1001 RUNNER_USER=runner /bin/bash -eo pipefail -c set -eux; find_tool() { command -v "$1" 2>/dev/null || ls /usr/lib/llvm-*/bin/"$1" 2>/dev/null | head -1; }; for pair in "llvm-lib:llvm-ar" "llvm-rc:llvm-rc" "clang-cl:clang" "lld-link:lld"; do want="${pair%%:*}"; src="${pair##*:}"; if ! command -v "$want" >/dev/null 2>&1; then real="$(find_tool "$src")"; [ -n "$real" ] || { echo "cannot resolve $src to alias $want" >&2; exit 1; }; ln -sf "$real" "/usr/local/bin/$want"; fi; done; for t in llvm-lib llvm-rc clang-cl lld-link; do command -v "$t"; done # buildkit
RUN |6 NODE_MAJOR=24 RUST_VERSION=1.97.1 TAURI_CLI_VERSION=2.11.4 CARGO_XWIN_VERSION=0.18.4 RUNNER_UID=1001 RUNNER_USER=runner /bin/bash -eo pipefail -c useradd --create-home --shell /bin/bash --uid ${RUNNER_UID} ${RUNNER_USER} && mkdir -p ${RUSTUP_HOME} ${CARGO_HOME} ${XWIN_CACHE_DIR} && chown -R ${RUNNER_UID}:${RUNNER_UID} ${RUSTUP_HOME} ${CARGO_HOME} ${XWIN_CACHE_DIR} # buildkit
USER runner
WORKDIR /home/runner
RUN |6 NODE_MAJOR=24 RUST_VERSION=1.97.1 TAURI_CLI_VERSION=2.11.4 CARGO_XWIN_VERSION=0.18.4 RUNNER_UID=1001 RUNNER_USER=runner /bin/bash -eo pipefail -c curl -fsSL https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal --default-toolchain ${RUST_VERSION} && rustup target add x86_64-pc-windows-msvc # buildkit
RUN |6 NODE_MAJOR=24 RUST_VERSION=1.97.1 TAURI_CLI_VERSION=2.11.4 CARGO_XWIN_VERSION=0.18.4 RUNNER_UID=1001 RUNNER_USER=runner /bin/bash -eo pipefail -c cargo install cargo-xwin --version ${CARGO_XWIN_VERSION} --locked && cargo install tauri-cli --version ${TAURI_CLI_VERSION} --locked # buildkit
RUN |6 NODE_MAJOR=24 RUST_VERSION=1.97.1 TAURI_CLI_VERSION=2.11.4 CARGO_XWIN_VERSION=0.18.4 RUNNER_UID=1001 RUNNER_USER=runner /bin/bash -eo pipefail -c cargo new --bin /tmp/xwin-warmup && cd /tmp/xwin-warmup && printf '[build-dependencies]\ncc = "1"\n' >> Cargo.toml && printf 'int warmup_answer(void) { return 42; }\n' > warmup.c && printf 'fn main() { cc::Build::new().file("warmup.c").compile("warmup"); }\n' > build.rs && printf 'unsafe extern "C" { fn warmup_answer() -> i32; }\nfn main() { println!("{}", unsafe { warmup_answer() }); }\n' > src/main.rs && cargo xwin build --release --target x86_64-pc-windows-msvc && test -f target/x86_64-pc-windows-msvc/release/xwin-warmup.exe && cd / && rm -rf /tmp/xwin-warmup # buildkit
RUN |6 NODE_MAJOR=24 RUST_VERSION=1.97.1 TAURI_CLI_VERSION=2.11.4 CARGO_XWIN_VERSION=0.18.4 RUNNER_UID=1001 RUNNER_USER=runner /bin/bash -eo pipefail -c rustc --version && cargo --version && cargo tauri --version && cargo xwin --version && node --version && makensis -VERSION && rustup target list --installed | grep -qx x86_64-pc-windows-msvc # buildkit

Labels

Key Value
org.opencontainers.image.description CI image: Rust + Node + cargo-xwin + LLVM/lld + NSIS. Cross-compiles a Tauri v2 app to a Windows NSIS installer from Linux.
org.opencontainers.image.licenses MIT
org.opencontainers.image.source https://git.fabledsword.com/bvandeusen/CI-runner
Details
Container
2026-08-31 01:03:50 -04:00
54
OCI / Docker
linux/amd64
MIT
922 MiB
Versions (2) View all
1.97 2026-08-31
latest 2026-08-31