30 lines
1 KiB
Docker
30 lines
1 KiB
Docker
# 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:no-prerender
|
|
|
|
# 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/
|
|
|
|
COPY property-data/wide.parquet ./data/
|
|
COPY property-data/filtered_uk_pois.parquet ./data/
|
|
COPY property-data/uk.pmtiles ./data/
|
|
COPY manual-data/postcode_boundaries ./data/postcode_boundaries/
|
|
|
|
EXPOSE 8001
|
|
ENTRYPOINT ["./property-map-server"]
|
|
CMD ["--data", "/app/data/wide.parquet", "--pois", "/app/data/filtered_uk_pois.parquet", "--tiles", "/app/data/uk.pmtiles", "--postcodes", "/app/data/postcode_boundaries"]
|