FROM docker.io/library/node:23-alpine3.21 AS frontend_builder
WORKDIR /build/frontend
COPY frontend .
RUN corepack enable
RUN pnpm install
RUN pnpm run build

FROM docker.io/library/rust:1.86-slim-bookworm as backend_builder
WORKDIR /build/backend
COPY backend .
RUN apt update && apt install -y clang libclang-dev
RUN cargo build --release

FROM docker.io/library/debian:bookworm-slim as runner
WORKDIR /app
COPY --from=frontend_builder /build/frontend/dist ./frontend/
COPY --from=backend_builder /build/backend/target/release/knotes-backend ./knotes-backend

ENV DATA_DIR=/data/docs
ENV FRONTEND_DIR=/app/frontend

EXPOSE 9000

CMD ["./knotes-backend"]