47 lines
No EOL
921 B
Text
47 lines
No EOL
921 B
Text
# Build stage
|
|
FROM rust:1.82-alpine AS builder
|
|
|
|
# Install essential build tools
|
|
RUN apk add --no-cache \
|
|
musl-dev \
|
|
openssl-dev \
|
|
openssl \
|
|
curl \
|
|
build-base \
|
|
g++ \
|
|
libc6-compat \
|
|
pkgconfig
|
|
|
|
# Install build dependencies
|
|
RUN apk add --no-cache musl-dev openssl-dev openssl
|
|
|
|
# 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
|
|
|
|
WORKDIR /app
|
|
COPY . .
|
|
|
|
|
|
# Build project
|
|
ENV LEPTOS_OUTPUT_NAME="compareware"
|
|
RUN cargo leptos build --release
|
|
|
|
# Runtime stage
|
|
FROM alpine:latest
|
|
|
|
# Install runtime dependencies
|
|
RUN apk add --no-cache openssl
|
|
|
|
WORKDIR /app
|
|
COPY --from=builder /app/target/release/compareware /app/compareware
|
|
COPY assets /app/assets
|
|
|
|
# Expose port and set entrypoint
|
|
EXPOSE 3000
|
|
ENV LEPTOS_SITE_ADDR=0.0.0.0:3000
|
|
ENV LEPTOS_SITE_ROOT="site"
|
|
CMD ["/app/compareware"] |