# syntax=docker/dockerfile:1.7

FROM node:20-alpine AS builder
RUN corepack enable
WORKDIR /build

COPY package.json pnpm-workspace.yaml pnpm-lock.yaml tsconfig.base.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/

RUN pnpm install --frozen-lockfile

COPY apps/server ./apps/server
COPY apps/web ./apps/web

RUN pnpm build

RUN pnpm deploy --filter=@boocode/server --prod --legacy /out/server


FROM node:20-alpine AS runtime
RUN apk add --no-cache ripgrep
WORKDIR /app

COPY --from=builder /out/server ./
COPY --from=builder /build/apps/web/dist ./web

ENV NODE_ENV=production
ENV WEB_DIST_PATH=/app/web
EXPOSE 3000

CMD ["node", "dist/index.js"]
