From 947d244326fe3ff1acfa5e899f4c42bcfa0ac724 Mon Sep 17 00:00:00 2001 From: ryan Date: Thu, 13 Mar 2025 18:04:34 +0300 Subject: [PATCH] build(docker): dockerize compareware --- .dockerignore | 5 +++++ docker-compose.yml | 11 +++++++++++ dockerfile | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 .dockerignore create mode 100644 docker-compose.yml create mode 100644 dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..4eaf472 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +target/ +**/*.rs.bk +node_modules/ +Dockerfile +docker-compose.yml \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..87d62e3 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,11 @@ +services: + app: + build: . + ports: + - "3000:3000" + volumes: + - ./compareware.db:/app/compareware.db + environment: + - RUST_LOG=info + - LEPTOS_ENV=production + restart: unless-stopped \ No newline at end of file diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000..357cc9b --- /dev/null +++ b/dockerfile @@ -0,0 +1,47 @@ +# 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"] \ No newline at end of file