FROM node:22-alpine AS builder

WORKDIR /app

LABEL org.opencontainers.image.source="TBC"
LABEL org.opencontainers.image.description="FYP Image"

COPY package*.json ./

RUN npm ci

COPY . .

RUN npm run build:api
RUN npm run build:web

FROM node:22-alpine

WORKDIR /app

COPY package*.json ./
RUN npm ci --omit=dev

COPY --from=builder /app/dist/apps/api ./dist/api
COPY --from=builder /app/dist/apps/web ./dist/web

COPY ./apps/api/src ./apps/api/src

EXPOSE 3000

CMD ["node", "dist/api/main.js"]
