From alfred-dev
Generates optimized multi-stage Dockerfiles for Node.js, Python, Rust, Go apps with non-root users, layer caching, health checks, and .dockerignore. Use for containerizing apps or Docker Compose setup.
How this skill is triggered — by the user, by Claude, or both
Slash command
/alfred-dev:dockerizeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Este skill genera un Dockerfile siguiendo las mejores prácticas de la industria: multi-stage builds para reducir el tamaño de la imagen final, ejecución con usuario no-root para seguridad, capas optimizadas para aprovechar la caché y health checks para la orquestación.
Este skill genera un Dockerfile siguiendo las mejores prácticas de la industria: multi-stage builds para reducir el tamaño de la imagen final, ejecución con usuario no-root para seguridad, capas optimizadas para aprovechar la caché y health checks para la orquestación.
Un buen Dockerfile no es solo "que funcione", sino que sea seguro, rápido de construir, pequeño y mantenible.
Detectar el stack del proyecto. Consultar el stack detectado en la configuración de Alfred para seleccionar la imagen base adecuada. Identificar el lenguaje, framework y runtime necesarios:
node:XX-alpine o node:XX-slim.python:XX-slim o python:XX-alpine.rust:XX para build y debian:XX-slim o gcr.io/distroless para runtime.golang:XX para build y scratch o gcr.io/distroless para runtime.Diseñar multi-stage build. Separar la fase de construcción de la de ejecución:
# Fase de build: incluye herramientas de compilación
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
# Fase de runtime: solo lo necesario para ejecutar
FROM node:20-alpine AS runtime
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
Optimizar el orden de capas para caché. Las capas que cambian menos van primero:
Esto asegura que un cambio en el código no invalida la caché de dependencias.
Configurar usuario no-root. Nunca ejecutar la aplicación como root dentro del contenedor:
RUN addgroup --system app && adduser --system --ingroup app app
USER app
Añadir health check. Permitir al orquestador (Docker Compose, Kubernetes) verificar que la aplicación está sana:
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD curl -f http://localhost:3000/health || exit 1
Generar .dockerignore. Excluir todo lo que no es necesario en la imagen:
node_modules
.git
.env
*.md
tests/
.github/
Configurar variables de entorno. Usar ENV para valores por defecto y documentar qué variables se deben pasar en runtime con ARG o -e.
Verificar la imagen resultante. Comprobar el tamaño final, que no incluye herramientas de build innecesarias y que arranca correctamente.
latest como tag de imagen base. Siempre fijar la versión concreta (por ejemplo, node:20.11-alpine) para garantizar builds reproducibles.node_modules al contenedor desde el host. Instalar las dependencias dentro del contenedor para evitar incompatibilidades de plataforma y binarios nativos..env, claves privadas, tokens). Los secretos se pasan en runtime como variables de entorno o mediante sistemas de gestión de secretos.npx claudepluginhub 686f6c61/alfred-dev --plugin alfred-devGenerates optimized multi-stage Dockerfiles, .dockerignore, for Node.js, Python, Go, Java apps with security hardening, layer caching, validation, and error fixes.
This skill should be used when the user says "create Dockerfile", "dockerize project", "Docker packaging", "container setup", "multi-stage build", "Docker Compose", "containerize application", "create docker-compose.yml", "create .dockerignore", "optimize Docker image", or wants to containerize their project or create Docker configurations.
Build production-ready Dockerfiles with multi-stage builds, security hardening, and docker-compose for local dev. Use when asked to "create Dockerfile", "optimize container", or "dockerize this".