El problema: Imágenes Docker hinchadas

Si eres desarrollador, es probable que uses Docker. Pero, ¿alguna vez te has preguntado por qué tus imágenes de Docker terminan pesando gigas, ralentizando tus despliegues y consumiendo espacio valioso? ¡No estás solo! En este post, te daremos 3 trucos probados para reducir drásticamente el tamaño de tus imágenes de Docker, especialmente en entornos de producción.

Truco 1: Usa imágenes base multi-arquitectura y minimalistas

A menudo, las imágenes base que elegimos son más grandes de lo necesario. Considera usar imágenes más ligeras como alpine o distroless. Si necesitas compatibilidad multi-arquitectura, asegúrate de que tu Dockerfile maneje esto eficientemente.

FROM alpine:latest
# Tu código aquí

Truco 2: Combina comandos RUN y limpia cachés

Cada instrucción RUN crea una nueva capa en tu imagen. Combina comandos relacionados y, crucialmente, limpia los cachés de paquetes después de la instalación para eliminar archivos innecesarios.

RUN apt-get update && 
    apt-get install -y --no-install-recommends some-package && 
    rm -rf /var/lib/apt/lists/*

Truco 3: Utiliza Docker BuildKit y multi-stage builds

Docker BuildKit ofrece optimizaciones automáticas. Las compilaciones multi-etapa son tus mejores amigas para separar el entorno de construcción del entorno de ejecución, incluyendo solo lo esencial en la imagen final.

# Etapa de construcción
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o /app/my-app

# Etapa de ejecución
FROM alpine:latest
COPY --from=builder /app/my-app /app/my-app
CMD ["/app/my-app"]

Conclusión: Menos es más

Reducir el tamaño de tus imágenes Docker no solo ahorra espacio y tiempo, sino que también mejora la seguridad al disminuir la superficie de ataque. ¡Implementa estos trucos y observa la diferencia!