# ── Stage 1 : Builder ───────────────────────────────────────────────────────── FROM rust:slim AS builder ARG BUILDKIT_INLINE_CACHE=1 RUN apt-get update && apt-get install -y \ pkg-config libssl-dev curl git nodejs npm \ && rm -rf /var/lib/apt/lists/* RUN rustup target add wasm32-unknown-unknown RUN cargo install cargo-leptos WORKDIR /app COPY . . RUN npm install ENV SQLX_OFFLINE=true ENV LEPTOS_TAILWIND_VERSION=v4.1.13 RUN cargo leptos build --release # ── Stage 2 : Runtime ───────────────────────────────────────────────────────── FROM debian:bookworm-slim AS runtime RUN apt-get update && apt-get install -y \ ca-certificates libssl3 \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=builder /app/target/release/enuxia-quiz ./ COPY --from=builder /app/target/site ./site RUN mkdir -p /data ENV LEPTOS_OUTPUT_NAME=enuxia-quiz ENV LEPTOS_SITE_ROOT=/app/site ENV LEPTOS_SITE_ADDR=0.0.0.0:3000 ENV DATABASE_URL=sqlite:///data/quiz.db EXPOSE 3000 CMD ["./enuxia-quiz"]