Las imágenes Docker mal optimizadas pueden hacer que tus despliegues sean lentos, consuman demasiado espacio o incluyan vulnerabilidades innecesarias. En este artículo aprenderás a construir imágenes ligeras, seguras y listas para producción.

 

Índice

Problemas comunes

  • Imágenes de más de 1 GB con paquetes innecesarios
  • Tiempo de build y despliegue excesivo
  • Dependencias no usadas
  • Riesgos de seguridad por paquetes antiguos

Multi-Stage Builds

Con las multi-stage builds puedes separar la fase de compilación de la fase de ejecución, generando imágenes más pequeñas.

FROM node:18 AS builder
WORKDIR /app
COPY . .
RUN npm install && npm run build

FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html

Esto evita incluir herramientas de desarrollo en la imagen final.

Minimizar capas y dependencias

  • Usar imágenes base ligeras: alpine
  • Combinar comandos en una sola capa:
RUN apk add --no-cache git && rm -rf /var/cache/apk/*

Buenas prácticas de seguridad

  • Usar usuarios no root en la imagen final
  • Escanear imágenes con trivy
  • Eliminar archivos temporales y cachés
  • Configurar .dockerignore para excluir archivos innecesarios

Ejemplo completo

FROM php:8.2-fpm-alpine
WORKDIR /var/www/html
COPY . .
RUN docker-php-ext-install pdo pdo_mysql
RUN adduser -D -g '' appuser
USER appuser
CMD ["php-fpm"]

Resultado: una imagen ligera, segura y lista para producción.

Conclusión

Optimizar imágenes Docker no solo mejora la velocidad de despliegue, sino que también reduce riesgos y costos de infraestructura. Es un paso esencial en cualquier estrategia DevOps para ecommerce.

¿Quieres que optimicemos tus imágenes Docker y CI/CD? Contáctanos.

Ir al contenido