Files
enuxia-quiz/Dockerfile
T
Julien Denizot d135917b2b
Build & Deploy / build (push) Failing after 6m56s
Build & Deploy / deploy (push) Has been skipped
feat: ci: build sur amd64 avec cache Docker, deploy séparé sur Pi
2026-04-13 19:08:45 +02:00

41 lines
1.2 KiB
Docker

# ── 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"]