diff --git a/chat-ui/Dockerfile b/chat-ui/Dockerfile index 286283d..77e20e3 100644 --- a/chat-ui/Dockerfile +++ b/chat-ui/Dockerfile @@ -1,18 +1,16 @@ +# ---------- Etapa de build ---------- +FROM node:18-alpine AS builder +WORKDIR /app +COPY package*.json ./ +RUN npm install # incluye TypeScript +COPY . . +RUN npm run build # genera /app/dist + +# ---------- Etapa ligera de runtime ---------- 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 +COPY --from=builder /app/dist ./dist +COPY package*.json ./ +RUN npm install --production # solo deps de runtime EXPOSE 3000 CMD ["node", "dist/server.js"]