Senior
¿Qué prácticas existen para reducir el tamaño de la imagen Docker?
sobes.tech AI
Respuesta de la IA
Para reducir el tamaño de la imagen de Docker, se aplican varias prácticas:
- Uso de imágenes base minimalistas, por ejemplo,
alpineen lugar deubuntu. - Construcción en múltiples etapas (multi-stage builds), donde en las primeras etapas se construye la aplicación, y en la imagen final solo queda el runtime mínimo con el binario compilado.
- Limpieza de cachés y archivos temporales después de instalar dependencias dentro del Dockerfile.
- Combinación de comandos RUN para reducir la cantidad de capas.
- Uso de
.dockerignorepara excluir archivos innecesarios del contexto de construcción.
Ejemplo de Dockerfile de múltiples etapas para Go:
# Etapa 1: Construcción
FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Etapa 2: Runtime mínimo
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]
Este enfoque permite obtener una imagen compacta con el conjunto mínimo de archivos.