Loading…

Acerca de Formateador de Dockerfile en Línea Gratuito

¿Dockerfile desordenado? ¿Indentación rota, espaciado inconsistente y cadenas RUN ilegibles? Este Formateador de Dockerfile utiliza un motor basado en dprint (a través de un backend seguro) para normalizar tus Dockerfiles y Containerfiles con un diseño limpio y con opinión. Mantiene tus instrucciones exactamente en su lugar mientras hace el archivo más fácil de revisar, versionar y automatizar en todos los entornos.

Características Clave del Formateador de Dockerfile

  • Limpia indentación, espaciado y ajuste de líneas para Dockerfiles y Containerfiles
  • Normaliza instrucciones RUN multi-línea con barras invertidas e indentación consistentes
  • Respeta la semántica de Dockerfile – sin reordenar instrucciones, sin cambios en la lógica del shell
  • Salida determinista: misma entrada y versión ⇒ mismo Dockerfile formateado
  • Compañero perfecto para hooks pre-commit, monorepos y trabajos de CI usando dprint
  • Editor basado en web con resaltado de sintaxis, salida amigable para diff y acciones de copiar/descargar
  • Funciona bien con builds multi-etapa, argumentos de build e imágenes típicas de Node/.NET/Go

🛠️ Cómo Formatear un Dockerfile for dockerfile-formatter

1

1. Pega o Sube Tu Dockerfile

Pega tu Dockerfile en el editor o suelta un Dockerfile/Containerfile de tu proyecto. Los fragmentos pequeños (como un solo bloque FROM/RUN) también funcionan si solo quieres experimentar.

2

2. Ejecuta el Formateador

Haz clic en "Formatear". La herramienta envía tu código fuente a un backend seguro basado en dprint que ajusta la indentación, espaciado, instrucciones en estilo array y cadenas RUN multilínea sin tocar la lógica de ejecución.

3

3. Revisa, Copia o Descarga

Compara la salida formateada con tu archivo original. Cuando estés satisfecho, copia el resultado de vuelta a tu repositorio o descarga el Dockerfile formateado para confirmarlo directamente.

Detalles Técnicos

Tipos de Archivo Soportados

El formateador se enfoca en instrucciones de construcción de Docker y archivos de construcción de contenedores compatibles utilizados en Docker, Podman y herramientas similares.

TipoEjemploNotas
DockerfileDockerfile, Dockerfile.prod, Dockerfile.node18Archivos de construcción clásicos de Docker para imágenes
ContainerfileContainerfileArchivos de configuración estilo Podman / Buildah
Fragmentos en líneaFROM node:18-alpineTambién se admiten fragmentos pequeños o ejemplos para pruebas rápidas

Comportamiento de Formateo (estilo dprint)

Comportamientos de alto nivel del plugin dprint subyacente utilizado por esta herramienta:

ÁreaComportamientoEjemplo
IndentaciónNormaliza la indentación para líneas continuadas en RUN y otras instruccionesRUN set -eux; \\n npm ci; \\n npm cache clean --force
Listas y arraysLimpia el espaciado en arrays estilo JSON para CMD/ENTRYPOINT/HEALTHCHECKCMD ["npm", "start"] → CMD ["npm", "start"] (pero con espacios consistentes)
EspaciadoElimina espacios redundantes alrededor de las instrucciones preservando el significadoENV NODE_ENV=production
Ajuste de líneasPuede refluir cadenas RUN largas para mejorar la legibilidad sin cambiar el ordenLas tuberías de shell largas se vuelven más fáciles de escanear y revisar en diferencias
ComentariosPreserva comentarios de línea completa e insertados junto a las instrucciones# base image for build stage\nFROM node:18 AS build

Objetivos no incluidos

Este formateador está intencionalmente limitado al diseño, para que puedas combinarlo con otras herramientas de DevOps:

Elemento¿Manejado?Notas
Linting estilo HadolintUsa hadolint o herramientas similares para comprobaciones de mejores prácticas y advertencias
Escaneo de seguridadNo realiza escaneo de CVE o vulnerabilidades en imágenes o registros
Construcción de imágenesNo ejecuta docker build ni interactúa con Docker Engine
Reordenamiento de instruccionesNunca reordena instrucciones; solo cambia la indentación y espacios en blanco
Fortalecimiento de imagen baseNo recomienda imágenes base; formatea lo que proporciones

CLI y Equivalentes en CI

¿Te gusta el resultado? Replica el mismo comportamiento localmente y en CI con dprint y herramientas complementarias.

Universal (dprint)

Inicializa dprint y añade el plugin de Dockerfile

dprint init
# En dprint.json, añade:
# {
#   "plugins": ["https://plugins.dprint.dev/dockerfile-0.x.wasm"]
# }
# Luego formatea tus Dockerfiles:
dprint fmt Dockerfile

La opción más cercana a este formateador en línea, para que desarrolladores y CI usen el mismo estilo.

Linux/macOS

Lint con hadolint (complementa el formateo)

hadolint Dockerfile

Combina formateo (estilo) con linting (mejores prácticas, imágenes más pequeñas, healthchecks).

Git / pre-commit

Ejecuta dprint en Dockerfiles modificados antes del commit

# .pre-commit-config.yaml (conceptual)
- repo: local
  hooks:
    - id: dprint-dockerfile
      name: dprint Dockerfiles
      entry: dprint fmt
      language: system
      files: "(Dockerfile|Containerfile)$"

Garantiza que cada Dockerfile fusionado en main ya esté formateado.

Casos de Uso Comunes

Desarrollo e Ingeniería de Plataforma

  • Normalizar Dockerfiles en microservicios antes de la revisión de código
  • Limpiar Dockerfiles heredados de múltiples equipos o plantillas
  • Estandarizar el estilo al migrar imágenes, versiones de SO base o estrategias de construcción
# Dockerfile multi-etapa típico (limpio, fácil de revisar)
FROM node:18 AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci && npm cache clean --force
COPY . .
RUN npm run build

FROM node:18-alpine
WORKDIR /app
COPY --from=build /app/dist ./
CMD ["node", "index.js"]

Pipelines de CI/CD

  • Fallar builds cuando los Dockerfiles no están correctamente formateados
  • Auto-corregir el estilo en ramas de características mediante hooks pre-commit o trabajos de CI
  • Mantener la configuración de Docker legible en monorepositorios y repositorios de plataforma de larga duración
# Ejemplo de hook pre-commit de Git (pseudo-código)
#!/bin/sh
changed=$(git diff --cached --name-only --diff-filter=ACM | grep -E 'Dockerfile|Containerfile' || true)
[ -z "$changed" ] && exit 0
dprint fmt $changed
git add $changed

Incorporación de Equipo y Consistencia

  • Dar a los nuevos miembros del equipo un único estilo de Dockerfile definido a seguir
  • Eliminar debates de estilo de código en PRs: dejar que el formateador sea la fuente de verdad
  • Alinear el formateo local, hooks del repositorio y trabajos de CI alrededor de la misma configuración de dprint
# Ejemplo de fragmento para docs/onboarding.md
1. Instalar dprint localmente
2. Copiar el dprint.json compartido del repositorio de plataforma
3. Ejecutar `dprint fmt Dockerfile` antes de abrir una pull request

❓ Frequently Asked Questions

¿El formateo cambia cómo se construye mi imagen?

No. El formateador solo afecta espacios en blanco, indentación y ajuste de líneas. Preserva el orden y contenido de tus instrucciones de Dockerfile. Mientras tu Dockerfile original fuera válido, la construcción de imagen resultante debería comportarse igual.

¿Es esto lo mismo que linting con hadolint?

No. Esta herramienta es un formateador, no un linter. Corrige problemas de estilo y diseño (espaciado, indentación, ajuste), pero no te advertirá sobre mejores prácticas (como usar imágenes base específicas, healthchecks o tamaños de capa). Para eso, combínalo con hadolint u otro linter de Dockerfile.

¿Puedo hacer cumplir este estilo en CI?

Sí. Puedes configurar dprint con el plugin de Dockerfile en tu repositorio y ejecutar `dprint fmt` (o `dprint check`) en tu pipeline de CI. De esa manera, CI puede fallar cuando los Dockerfiles se desvíen del estilo esperado, coincidiendo con lo que ves en este formateador en línea.

¿Admite construcciones multi-etapa?

Sí. Los Dockerfiles multi-etapa se formatean como cualquier otro archivo. Cada instrucción FROM, COPY, RUN y ENV se preserva, y el diseño se hace consistente en todas las etapas sin cambiar la semántica de construcción.

¿Se sube mi Dockerfile a un servidor?

Para esta herramienta, el formateo se realiza mediante un endpoint backend seguro usando un formateador basado en dprint. Tu fuente se usa para calcular la respuesta y no está destinada a almacenarse a largo plazo. Como siempre, evita pegar detalles de infraestructura altamente confidenciales en cualquier herramienta en línea a menos que controles toda la pila.

Pro Tips

Best Practice

Ejecuta el formateo automáticamente en CI para que el estilo de Dockerfile nunca varíe entre servicios o equipos.

Best Practice

Combina este formateador con un linter como hadolint para cubrir tanto el diseño como las guías de mejores prácticas.

Best Practice

Acuerda una plantilla estándar de Dockerfile multi-etapa al inicio de un proyecto y mantenla formateada para que los nuevos servicios sigan la misma estructura.

Best Practice

Si trabajas en un monorepositorio, comparte una única configuración de dprint para que el código de aplicación, el código de infraestructura y los Dockerfiles usen convenciones consistentes.

Additional Resources

Other Tools