What problem does it solve? Writing Dockerfiles that produce bloated, insecure images is a common problem. This Skill guides the creation of multi-stage Dockerfiles that separate build and runtime environments, resulting in smaller images with fewer vulnerabilities. ## Core Features & Use Cases - Multi-Stage Structure: Separates builder and runtime stages, copying only necessary artifacts between stages with meaningful stage names. - Layer Optimization: Orders instructions to maximize build cache hits, combines RUN commands, and uses .dockerignore to reduce build context. - Security Hardening: Enforces non-root users, minimal base images, pinned version tags, and removal of build tools from final images. - Use Case: You have a Node.js application whose image is 1.2GB because it ships devDependencies and build tools. Use this Skill to restructure the Dockerfile into builder and runtime stages, cutting the final image to a slim production-only footprint. ## Quick Start Create an optimized multi-stage Dockerfile for my Node.js application following best practices for caching and security.