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"]