akin-ozer/cc-devops-skills/dockerfile-generator
Claude Code and agent skill by akin-ozer/cc-devops-skills
- community
Checking that the SKILL.md file is still in the repository.
Create, generate, or write Dockerfiles and multi-stage Docker images. Containerize apps.
Install
npx vskill@latest install akin-ozer/cc-devops-skills/dockerfile-generatorSKILL.md
Dockerfile Generator
Overview
This skill provides a comprehensive workflow for generating production-ready Dockerfiles with security, optimization, and best practices built-in. Generates multi-stage builds, security-hardened configurations, and optimized layer structures with automatic validation and iterative error fixing.
Key Features:
- Multi-stage builds for optimal image size (50-85% reduction)
- Security hardening (non-root users, minimal base images, no secrets)
- Layer caching optimization for faster builds
- Language-specific templates (Node.js, Python, Go, Java)
- Automatic .dockerignore generation
- Integration with
dockerfile-validatorfor validation - Iterative validation and error fixing (minimum 1 iteration if errors found)
- Local references plus docs lookup fallback chain for framework-specific patterns
When to Use This Skill
Invoke this skill when:
- Creating new Dockerfiles from scratch
- Containerizing applications (Node.js, Python, Go, Java, or other languages)
- Implementing multi-stage builds for size optimization
- Converting existing Dockerfiles to best practices
- Generating production-ready container configurations
- Optimizing Docker builds for security and performance
- The user asks to "create", "generate", "build", or "write" a Dockerfile
- Implementing containerization for microservices
- Setting up CI/CD pipeline container builds
Trigger Phrases
Use this skill immediately when the request contains phrasing like:
- "Generate a production Dockerfile for my app"
- "Create a multi-stage Dockerfile for <language/framework>"
- "Containerize this service with security best practices"
- "Optimize this Dockerfile for size and build speed"
- "Write Dockerfile and .dockerignore for deployment"
Do NOT Use This Skill For
- Validating existing Dockerfiles (use
dockerfile-validatorinstead) - Building or running containers (use docker build/run commands)
- Debugging running containers (use docker logs, docker exec)
- Managing Docker images or registries
Deterministic Execution Model
Run these stages in order, and do not skip a stage unless the skip reason is reported in the final output.
- Gather requirements (language, runtime version, entrypoint, exposed port, package manager, health endpoint).
- Load references (local reference files first; external docs only when local references are insufficient).
- Generate Dockerfile and
.dockerignore. - Validate with
dockerfile-validatoror fallback local tools. - Iterate fixes until stop condition is met.
- Publish final artifacts plus validation/audit report.
Stop conditions for stage 5:
- Stop when there are zero validation errors and no unapproved warnings.
- Stop after 3 iterations maximum, then emit an intentional-deviation report for unresolved findings.
Reference Path Map
Consult these files directly by path as needed:
references/security_best_practices.mdfor non-root users, secret handling, base image hardening, vulnerability scanning.references/optimization_patterns.mdfor multi-stage strategy, cache optimization, layer reduction, BuildKit cache mounts.references/language_specific_guides.mdfor language/framework runtime and package-manager patterns.references/multistage_builds.mdfor advanced stage-splitting and artifact-copy patterns.
Dockerfile Generation Workflow
Follow this workflow when generating Dockerfiles. Adapt based on user needs:
Stage 1: Gather Requirements
Objective: Understand what needs to be containerized and gather all necessary information.
Information to Collect:
- Application Details:
- Programming language and version (Node.js 18/20, Python 3.11/3.12, Go 1.21+, Java 17/21, etc.)
- Application type (web server, API, CLI tool, batch job, etc.)
- Framework (Express, FastAPI, Spring Boot, etc.)
- Entry point (main file, command to run)
- Dependencies:
- Package manager (npm/yarn/pnpm, pip/poetry, go mod, maven/gradle)
- System dependencies (build tools, libraries, etc.)
- Build-time vs runtime dependencies
- Application Configuration:
- Port(s) to expose
- Environment variables needed
- Configuration files
- Health check endpoint (for web services)
- Volume mounts (if any)
- Build Requirements:
- Build commands
- Test commands (optional)
- Compilation needs (for compiled languages)
- Static asset generation
- Production Requirements:
- Expected image size constraints
- Security requirements
- Scaling needs
- Resource constraints (CPU, memory)
Use AskUserQuestion if information is missing or unclear.
Example Questions:
Stage 2: Framework/Library Documentation Lookup (if needed)
Objective: Research framework-specific containerization patterns and best practices.
When to Perform This Stage:
- User mentions a specific framework (Next.js, Django, FastAPI, Spring Boot, etc.)
- Application has complex build requirements
- Need guidance on framework-specific optimization
Research Process (strict fallback chain):
- Read local references first (required):
references/security_best_practices.mdreferences/optimization_patterns.mdreferences/language_specific_guides.md
- Use Context7 docs lookup when local references are insufficient (preferred external source):
`` Use mcp__context7__resolve-library-id with the framework name Then use mcp__context7__query-docs with query: "docker deployment production build" ``
- Use web search only if Context7 is unavailable or missing needed details:
`` "<framework>" "<version>" dockerfile production deployment best practices ``
- If external lookup is unavailable (offline/tooling limits):
- Continue with local references and language templates in this file.
- State assumptions explicitly in the output.
- Mark the lookup limitation in the final report.
- Extract only actionable data:
- Recommended base image + version policy
- Build optimization techniques
- Required runtime environment variables
- Production vs development differences
- Security requirements specific to the framework
Stage 3: Generate Dockerfile
Objective: Create a production-ready, multi-stage Dockerfile following best practices.
Core Principles:
- Multi-Stage Builds (REQUIRED for compiled languages, RECOMMENDED for all):
- Separate build stage from runtime stage
- Keep build tools out of final image
- Copy only necessary artifacts
- Results in 50-85% smaller images
- Security Hardening (REQUIRED):
- Use specific version tags (NEVER use :latest)
- Run as non-root user (create dedicated user)
- Use minimal base images (alpine, distroless)
- No hardcoded secrets
- Scan base images for vulnerabilities
- Layer Optimization (REQUIRED):
- Order instructions from least to most frequently changing
- Copy dependency files before application code
- Combine related RUN commands with &&
- Clean up package manager caches in same layer
- Leverage build cache effectively
- Production Readiness (REQUIRED):
- Add HEALTHCHECK for services
- Use exec form for ENTRYPOINT/CMD
- Set WORKDIR to absolute paths
- Document exposed ports with EXPOSE
Language-Specific Templates:
Node.js Multi-Stage Dockerfile
Build-stage dependency rule: If the application has a build step (TypeScript,Vite, Webpack, etc.), install all dependencies in the builder stage (omit--only=production) and prune dev deps after the build. Using--only=productionbefore a build step will causenpm run buildto failbecause dev tools are not installed.
Simple app (no build step): If there is no compilation or bundling, installonly production deps in the builder stage and copy source from the host context:```dockerfileRUN npm ci --only=production && npm cache clean --force...COPY --from=builder --chown=nodejs:nodejs /app/node_modules ./node_modulesCOPY --chown=nodejs:nodejs . .```
Python Multi-Stage Dockerfile
Go Multi-Stage Dockerfile
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingdevops-skills-plugin/skills/dockerfile-generator/SKILL.md
Popularity
- Repository stars
- 316
- Repository forks
- 36
- 7-day trend score
- 29
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 19 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/akin-ozer/cc-devops-skills/dockerfile-generator)