# Build Frontend FROM rust:latest as frontend-builder WORKDIR /app COPY frontend ./frontend COPY backend ./backend # Install wasm-pack RUN curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh WORKDIR /app/frontend # Build frontend RUN wasm-pack build --target web --out-name wasm --out-dir ../backend/static RUN cp index.html ../backend/static/index.html # Build Backend FROM rust:latest as backend-builder WORKDIR /app COPY backend ./backend COPY --from=frontend-builder /app/backend/static ./backend/static WORKDIR /app/backend RUN cargo build --release # Build Importer FROM rust:latest as importer-builder WORKDIR /app COPY importer ./importer WORKDIR /app/importer RUN cargo build --release # Backend Runtime FROM debian:forky-slim as backend WORKDIR /app COPY --from=backend-builder /app/backend/target/release/backend ./backend COPY --from=frontend-builder /app/backend/static ./static # Install ca-certificates for HTTPS if needed RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/* ENV SCYLLA_URI=scylla:9042 EXPOSE 3000 CMD ["./backend"] # Importer Runtime FROM debian:forky-slim as importer WORKDIR /app COPY --from=importer-builder /app/importer/target/release/importer ./importer # Install ca-certificates for HTTPS if needed RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/* CMD ["./importer"]