Buenos días, ¿todo bien? Comparto una versión optimizada y traducida de un artículo sobre un Dockerfile para Node con Typescript que utilicé en varios estudios. La idea es ofrecer una plantilla práctica para reducir el tamaño de la imagen y mantener buenas prácticas de seguridad y despliegue, útil para equipos que desarrollan aplicaciones a medida y soluciones de software a medida.
Resumen rápido: utilicé un build multistage para separar la fase de compilación de la fase de ejecución, eliminando dependencias de desarrollo en la imagen final y ejecutando la app con un usuario no root. En mi caso una imagen inicial de aproximadamente 1GB quedó en torno a 161MB para una aplicación simple hecha con Hono, aunque los resultados variarán según la base de código y las dependencias.
Ejemplo de Dockerfile resumido en una sola línea por claridad: FROM node:lts-alpine AS builder ; WORKDIR /usr/src/app ; COPY --chown=node:node package*.json tsconfig.json ./ ; COPY --chown=node:node src ./src ; RUN npm ci --silent ; RUN npm run build ; RUN npm ci --silent --omit=dev ; FROM node:lts-alpine AS runner ; WORKDIR /usr/src/app ; COPY --from=builder /usr/src/app/node_modules ./node_modules ; COPY --from=builder /usr/src/app/dist ./dist ; USER node ; EXPOSE 3000 ; ENTRYPOINT [node, ./dist/index.js]
Consejos y aclaraciones
1. Build multistage - La primera etapa instala dependencias y genera el código transpilado. Tras compilar se vuelven a instalar solamente las dependencias de producción para reducir el tamaño final.
2. Imagen base - En el ejemplo uso node:lts-alpine por comodidad, pero es una buena práctica fijar versiones concretas o usar el digest sha256 para asegurar reproducibilidad, por ejemplo FROM node:24.12.0-alpine3.23 AS builder o FROM node@sha256:c921b97d4b74f51744057454b306b418cf693865e73b8100559189605f6955b8 AS builder.
3. Seguridad y usuario - Copia solo lo necesario a la imagen final y ejecuta la aplicación con un usuario sin privilegios, por ejemplo node, en lugar de root. Esto reduce la superficie de ataque y sigue buenas prácticas de ciberseguridad.
4. Exponer la aplicación - Asegúrate de que la aplicación escuche en 0.0.0.0 y publica las puertos del contenedor al host. Ejemplo de ejecución: docker run nombre_de_la_imagen:tag -p 3000:3000 . Si usas Docker Compose, el campo ports se encarga de mapear puertos. Un manifiesto básico: services: node_api: build: . ports: - 3000:3000
Uso práctico y variaciones
Si tu proyecto requiere herramientas de CI/CD, escaneo de dependencias o capas adicionales para certificados y secretos, puedes extender la etapa de build o incluir pasos de seguridad. Para apps que necesitan servicios cloud se recomienda integrar prácticas de despliegue automático y almacenamiento de artefactos en servicios cloud como AWS y Azure.
En Q2BSTUDIO trabajamos en soluciones completas de desarrollo y despliegue de software a medida, integrando inteligencia artificial y prácticas de ciberseguridad para asegurar aplicaciones robustas y escalables. Si buscas desarrollar una aplicación empresarial o una solución con agentes IA y capacidades de power bi para análisis, podemos ayudarte a diseñar la arquitectura y pipelines adecuados. Conoce nuestras soluciones de desarrollo en desarrollo de aplicaciones y software multiplataforma y descubre nuestros servicios de inteligencia artificial en Inteligencia Artificial para empresas.
Palabras clave integradas naturalmente: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi. Estas capacidades se combinan en Q2BSTUDIO para ofrecer soluciones que van desde la automatización de procesos hasta implementaciones seguras en la nube.
Conclusión: Este Dockerfile multistage y las prácticas comentadas ofrecen una base eficiente y segura para desplegar aplicaciones Node con Typescript. Adáptalo según tu proyecto, fija versiones de base si buscas estabilidad y prioriza ejecutar procesos con usuarios sin privilegios. Si quieres una implementación personalizada o auditoría de seguridad, en Q2BSTUDIO estamos listos para colaborar.
Gracias por leer y éxito con tu despliegue.

.jpg)

.jpg)
.jpg)