From 1d5657d254e3988303e0c235cef4e097f65fb7c1 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 25 Mar 2026 08:33:45 +0000 Subject: [PATCH] fix(ci): require Rust 1.94.0 in Dockerfile via rustup The rust:1.85-slim base image is too old for LazyLock and simd_caps. Switch to debian:bookworm-slim + rustup install of 1.94.0 explicitly. https://claude.ai/code/session_01CdqyUTUfjKZuk8YGJzv6LB --- Dockerfile | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index e680981d..5dd470f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,27 @@ # ndarray — Railway compile-test image # Verifies the HPC module builds cleanly (default + jit-native features) +# Requires Rust 1.94.0 (LazyLock, simd_caps, modern std APIs) # # Build: docker build -t ndarray-test . # Run: docker run --rm ndarray-test -FROM rust:1.85-slim AS builder +FROM debian:bookworm-slim AS builder -WORKDIR /app - -# System deps for Cranelift JIT +# System deps RUN apt-get update && apt-get install -y --no-install-recommends \ - pkg-config libssl-dev \ + curl ca-certificates gcc libc6-dev pkg-config libssl-dev \ && rm -rf /var/lib/apt/lists/* +# Install Rust 1.94.0 via rustup +ENV RUSTUP_HOME=/usr/local/rustup \ + CARGO_HOME=/usr/local/cargo \ + PATH=/usr/local/cargo/bin:$PATH +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \ + sh -s -- -y --default-toolchain 1.94.0 --profile minimal \ + && rustc --version | grep -q "1.94.0" + +WORKDIR /app + # Copy workspace files first for layer caching COPY Cargo.toml Cargo.lock ./ COPY ndarray-rand/Cargo.toml ndarray-rand/Cargo.toml @@ -34,4 +43,4 @@ RUN cargo test --release --lib -- hpc:: 2>&1 && echo "=== HPC TESTS OK ===" # Minimal runtime image — just proves it compiled FROM debian:bookworm-slim COPY --from=builder /app/target/release/libndarray.rlib /usr/local/lib/ -CMD ["echo", "ndarray build verified"] +CMD ["echo", "ndarray build verified — Rust 1.94.0"]