FROM node:18-alpine WORKDIR /app # 1. Copiamos primero solo package.json para cache COPY package.json package-lock.json* ./ # 2. Instalamos todo (incluye devDependencies como typescript) RUN npm install # 3. Ahora sí, copiamos el código fuente COPY . . # 4. Compilamos y luego eliminamos devDependencies RUN npm run build && npm prune --production # 5. Listo para producción EXPOSE 3000 CMD ["node", "dist/server.js"]