# Stage 1: Build frontend FROM node:20-slim AS frontend WORKDIR /app/frontend COPY frontend/package.json frontend/package-lock.json ./ RUN npm ci COPY frontend/ ./ RUN npm run build # Stage 2: Build Rust server FROM rust:1.83-bookworm AS server WORKDIR /app COPY server-rs/ server-rs/ WORKDIR /app/server-rs RUN cargo build --release # Stage 3: Runtime FROM debian:bookworm-slim RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=server /app/server-rs/target/release/property-map-server ./ COPY --from=frontend /app/frontend/dist ./dist/ EXPOSE 8001 ENTRYPOINT ["./property-map-server"] CMD ["--data", "/data/wide.parquet", "--pois", "/data/filtered_uk_pois.parquet"]