## Multi-stage Dockerfile for building the TypeScript server FROM node:20-alpine AS builder WORKDIR / # Copy package files and install (in container only) COPY server/package*.json ./server/ WORKDIR /server RUN npm ci --silent # Copy server source and build COPY server/ ./ RUN npm run build ## Production image FROM node:20-alpine AS runtime WORKDIR / # Copy built server COPY --from=builder /server/dist ./server/dist COPY --from=builder /server/node_modules ./server/node_modules COPY server/package*.json /server/ WORKDIR /server ENV NODE_ENV=production EXPOSE 8930 CMD ["npm", "start"]