# Stage 1: Build Vue UI FROM oven/bun:1-alpine AS ui-builder WORKDIR /ui COPY ui/ . RUN bun run build # Stage 2: Build Rust API FROM rust:1.96-slim AS api-builder RUN apt-get update && apt-get install -y pkg-config libssl-dev && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY Cargo.toml Cargo.lock ./ COPY src/ src/ RUN cargo build --release # Stage 3: Final image FROM debian:bookworm-slim RUN apt-get update && apt-get install -y ca-certificates libssl3 && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=api-builder /app/target/release/mercury . COPY --from=ui-builder /ui/dist ./ui/dist EXPOSE 3000 CMD ["./mercury"]