Buenas prácticas de Dockerfile en 2026 — los patrones que de verdad importan
19 de mayo de 2026 · 1 min de lectura · por Sudhanshu K.
La mayoría de los artículos «Dockerfile best practices» en el top 10 de Google fueron escritos entre 2019 y 2022. No están equivocados — simplemente les faltan los patrones que se han convertido en buena práctica desde entonces.
Esta es la checklist que usamos al hacer onboarding de un cliente a Docker gestionado. No lo que encontrarás en un tutorial de Docker — lo que encontrarás en Dockerfiles de calidad de producción en 2026.
Multi-stage con cache mounts y runtime distroless
# syntax=docker/dockerfile:1.7
FROM golang:1.22-alpine AS builder
WORKDIR /src
COPY go.mod go.sum ./
RUN --mount=type=cache,target=/go/pkg/mod go mod download
COPY . .
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
CGO_ENABLED=0 go build -trimpath -ldflags='-s -w' -o /out/app ./cmd/app
FROM gcr.io/distroless/static-debian12:nonroot
COPY --from=builder /out/app /app
USER nonroot:nonroot
ENTRYPOINT ["/app"]Los cache mounts por sí solos pueden recortar los tiempos de build de CI de 8 minutos a 90 segundos. El runtime distroless reduce el tamaño de imagen de ~50 MB a ~2 MB — y la superficie de ataque a casi nada.
El artículo completo cubre:
- Por qué BuildKit debe activarse explícitamente vía la directiva de sintaxis
- Ordenación de capas por churn (lo que cambia poco arriba, lo que cambia mucho abajo)
- Secretos de build vía
--mount=type=secret— nuncaARG DB_PASSWORD - Anclar imágenes base por digest con frescura dirigida por Renovate
- Healthchecks baratos y legibles
.dockerignorecomo el fichero de mayor ROI del proyecto- Los antipatrones que todavía vemos en 2026
Entregamos esta plantilla en cada engagement de Docker gestionado.
Artículo completo disponible
Leer el artículo completo