FROM node:20-alpine AS builder
WORKDIR /app
COPY package.json package-lock.json ./
COPY packages/shared/package.json packages/shared/
COPY packages/server/package.json packages/server/
RUN npm ci --workspace=packages/shared --workspace=packages/server
COPY packages/shared packages/shared
COPY packages/server packages/server
RUN npx tsc -p packages/shared/tsconfig.json
RUN npx tsc -p packages/server/tsconfig.json

FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/packages/shared/dist packages/shared/dist
COPY --from=builder /app/packages/shared/package.json packages/shared/
COPY --from=builder /app/packages/server/dist packages/server/dist
COPY --from=builder /app/packages/server/package.json packages/server/
COPY --from=builder /app/node_modules node_modules
COPY package.json ./
EXPOSE 3001
CMD ["node", "packages/server/dist/index.js"]
