From f87f88db2daf523ded050ea7b950fb14ad3950ea Mon Sep 17 00:00:00 2001 From: ryan Date: Fri, 14 Mar 2025 17:35:12 +0300 Subject: [PATCH] build(docker): update Dockerfile to use Debian Bullseye and Rust 1.83.0. -switch from Alpine to Debian for runtime -add wasm-bindgen-cli -update cargo-leptos version --- dockerfile | 57 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/dockerfile b/dockerfile index 357cc9b..b61ad15 100644 --- a/dockerfile +++ b/dockerfile @@ -1,47 +1,56 @@ # Build stage -FROM rust:1.82-alpine AS builder +FROM rust:1.83.0-slim-bullseye as builder # Install essential build tools -RUN apk add --no-cache \ - musl-dev \ - openssl-dev \ - openssl \ +RUN apt-get update && \ + apt-get install -y \ + libsqlite3-dev \ + build-essential \ + clang \ + libssl-dev \ + pkg-config \ curl \ - build-base \ - g++ \ - libc6-compat \ - pkgconfig - -# Install build dependencies -RUN apk add --no-cache musl-dev openssl-dev openssl + cmake \ + protobuf-compiler \ + && rm -rf /var/lib/apt/lists/* # Install Rust toolchain -RUN rustup install stable RUN rustup component add rust-src -# Install cargo-leptos -RUN cargo install cargo-leptos --version 0.2.29 --locked +# Install cargo-leptos & wasm-bindgen-cli +RUN cargo install cargo-leptos --version 0.2.24 --locked +RUN cargo install wasm-bindgen-cli --version 0.2.99 --locked +# Build application WORKDIR /app COPY . . - - +# Explicitly set WASM target +RUN rustup target add wasm32-unknown-unknown # Build project ENV LEPTOS_OUTPUT_NAME="compareware" + +# Build with release profile RUN cargo leptos build --release # Runtime stage -FROM alpine:latest +FROM debian:bullseye-slim -# Install runtime dependencies -RUN apk add --no-cache openssl +# Install runtime dependencies in Debian +RUN apt-get update && \ + apt-get install -y \ + libssl-dev \ + libsqlite3-0 \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* -WORKDIR /app -COPY --from=builder /app/target/release/compareware /app/compareware +# Copy build artifacts +COPY --from=builder /app/target/release/compareware /app/ +COPY --from=builder /app/target/site /app/site COPY assets /app/assets -# Expose port and set entrypoint +# Configure container, expose port and set entrypoint +WORKDIR /app EXPOSE 3000 ENV LEPTOS_SITE_ADDR=0.0.0.0:3000 ENV LEPTOS_SITE_ROOT="site" -CMD ["/app/compareware"] \ No newline at end of file +CMD ["./compareware"] \ No newline at end of file