Install the "dockerfile-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/dockerfile-generator into .claude/skills/dockerfile-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dockerfile-generator", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add akin-ozer/cc-devops-skills --skill dockerfile-generator -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "dockerfile-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/dockerfile-generator into .agents/skills/dockerfile-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dockerfile-generator", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add akin-ozer/cc-devops-skills --skill dockerfile-generator -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "dockerfile-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/dockerfile-generator into .cursor/skills/dockerfile-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dockerfile-generator", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add akin-ozer/cc-devops-skills --skill dockerfile-generator -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "dockerfile-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/dockerfile-generator into .gemini/skills/dockerfile-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dockerfile-generator", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add akin-ozer/cc-devops-skills --skill dockerfile-generator -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "dockerfile-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/dockerfile-generator into .github/skills/dockerfile-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dockerfile-generator", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add akin-ozer/cc-devops-skills --skill dockerfile-generator -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "dockerfile-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/dockerfile-generator into .opencode/skills/dockerfile-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dockerfile-generator", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
dockerfile-generator
GitHub stars
319
Token cost
~7.7k tokens
SKILL.md length
2,109 words
Files
17 (incl. scripts, references)
Skills in repo
30
Repo updated
First seen
Licence
Apache-2.0
At a glance
Create, generate, or write Dockerfiles and multi-stage Docker images.
Works in 7 steps: Gather Requirements → Framework/Library Documentation Lookup… → Generate Dockerfile → …
Tasks that involve Containers
SKILL.md covers Overview, When to Use This Skill, Do NOT Use This Skill For and Deterministic Execution Model, plus 7 more sections
Runs Shell scripts from its folder; calls docker, bash and hadolint; needs API_KEY
What it does
Dockerfile Generator is an agent skill from akin-ozer/cc-devops-skills. Create, generate, or write Dockerfiles and multi-stage Docker images. Containerize apps.
Its SKILL.md is about 7.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 19 other files, including scripts and reference files (for example `references/language_specific_guides.md`, `references/multistage_builds.md` and `references/optimization_patterns.md`).
It sits in DevOps & Cloud, covering Containers. It works with Docker and Node.js. The repository describes itself as: DevOps skills for Claude Code and Codex. The licence is Apache-2.0.
When your agent uses it
Tasks that involve Containers
Example prompts
“/dockerfile-generator”
Requirements
Python 3
Node.js
A Bash shell
Docker
Workflow steps
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 276af75. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Ships 6 files in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
docker
bash
hadolint
curl
npm
From the folder's file list and the shell code blocks in SKILL.md.
Network
Links to these hosts (documentation or services it may open):
docs.docker.com
blog.bytescrum.com
betterstack.com
spacelift.io
developers-heaven.net
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names these keys or tokens, usually read from environment variables:
API_KEY
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Dockerfile Generator loads about 7.7k tokens when it runs, and up to ~19k if it reads all its reference files. Until then it costs about 27 tokens; SKILL.md has 2,109 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~27
When it runs· the whole SKILL.md, loaded when a task matches
~7.7k
With references· SKILL.md plus every file in references/, read only if the agent opens them
~19k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check: notes
The automated check noted patterns worth knowing about, such as sudo or a known installer.
NoteMentions a .env fileSKILL.md:463
.env
NoteMentions a .env fileSKILL.md:464
.env.*
NoteMentions a .env fileSKILL.md:713
# docker build --secret id=api_key,src=.env
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
Download SKILL.mdSave it as .claude/skills/dockerfile-generator/SKILL.md (or your agent's skills folder). This skill also uses 16 other files; get the full folder from GitHub.
name
dockerfile-generator
description
Create, generate, or write Dockerfiles and multi-stage Docker images. Containerize apps.
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)
references/language_specific_guides.md for language/framework runtime and package-manager patterns.
references/multistage_builds.md for 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:
- What programming language and version is your application using?
- What is the main entry point to run your application?
- Does your application expose any ports? If so, which ones?
- Do you need any system dependencies beyond the base language runtime?
- Does your application need a health check endpoint?
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.md
references/optimization_patterns.md
references/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=production before a build step will cause npm run build to fail
because dev tools are not installed.
dockerfile
# syntax=docker/dockerfile:1
# Build stage — installs all deps so build tools (tsc, vite, etc.) are available,
# then prunes dev deps so the production stage only ships what is needed at runtime.
FROM node:20-alpine AS builder
WORKDIR /app
# Copy dependency files for caching
COPY package*.json ./
# Install ALL dependencies (including devDependencies required by the build step)
RUN npm ci && \
npm cache clean --force
# Copy application code
COPY . .
# Build application and prune dev dependencies
RUN npm run build && \
npm prune --production
# Production stage
FROM node:20-alpine AS production
WORKDIR /app
# Set production environment
ENV NODE_ENV=production
# Create non-root user
RUN addgroup -g 1001 -S nodejs && \
adduser -S nodejs -u 1001
# Copy pruned node_modules and built application from builder
COPY --from=builder --chown=nodejs:nodejs /app/node_modules ./node_modules
COPY --from=builder --chown=nodejs:nodejs /app .
# Switch to non-root user
USER nodejs
# Expose port
EXPOSE 3000
# Health check
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD node -e "require('http').get('http://localhost:3000/health', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"
# Start application
CMD ["node", "index.js"]
Simple app (no build step): If there is no compilation or bundling, install
only production deps in the builder stage and copy source from the host context:
dockerfile
RUN npm ci --only=production && npm cache clean --force
...
COPY --from=builder --chown=nodejs:nodejs /app/node_modules ./node_modules
COPY --chown=nodejs:nodejs . .
Python Multi-Stage Dockerfile
dockerfile
# syntax=docker/dockerfile:1
# Build stage
FROM python:3.12-slim AS builder
WORKDIR /app
# Install build dependencies
# hadolint ignore=DL3008
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc \
&& rm -rf /var/lib/apt/lists/*
# Copy dependency files
COPY requirements.txt .
# Install Python dependencies
RUN pip install --no-cache-dir --user -r requirements.txt
# Production stage
FROM python:3.12-slim AS production
WORKDIR /app
# Create non-root user
RUN useradd -m -u 1001 appuser
# Copy dependencies from builder
COPY --from=builder /root/.local /home/appuser/.local
# Copy application code
COPY --chown=appuser:appuser . .
# Update PATH and set Python production env vars
# PYTHONUNBUFFERED=1 ensures stdout/stderr are flushed immediately (essential for container logs)
# PYTHONDONTWRITEBYTECODE=1 prevents writing .pyc files to disk
ENV PATH=/home/appuser/.local/bin:$PATH \
PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1
# Switch to non-root user
USER appuser
# Expose port
EXPOSE 8000
# Health check (adjust endpoint as needed)
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health').read()" || exit 1
# Start application
CMD ["python", "app.py"]
Go Multi-Stage Dockerfile
dockerfile
# syntax=docker/dockerfile:1
# Build stage
FROM golang:1.21-alpine AS builder
WORKDIR /app
# Copy go mod files
COPY go.mod go.sum ./
RUN go mod download
# Copy source code
COPY . .
# Build the application
RUN CGO_ENABLED=0 GOOS=linux go build -a -ldflags="-s -w" -o main .
# Production stage (using distroless for minimal image)
# gcr.io/distroless/static-debian12 IS a specific tag; hadolint DL3006 is a
# false positive for non-Docker-Hub registries.
# hadolint ignore=DL3006
FROM gcr.io/distroless/static-debian12 AS production
WORKDIR /
# Copy binary from builder
COPY --from=builder /app/main /main
# Expose port
EXPOSE 8080
# HEALTHCHECK is not supported in distroless images (no shell available)
# Switch to non-root user (distroless runs as nonroot by default)
USER nonroot:nonroot
# Start application
ENTRYPOINT ["/main"]
Java Multi-Stage Dockerfile
dockerfile
# syntax=docker/dockerfile:1
# Build stage
FROM eclipse-temurin:21-jdk-jammy AS builder
WORKDIR /app
# Copy Maven wrapper and pom.xml
COPY mvnw pom.xml ./
COPY .mvn .mvn
# Download dependencies (cached layer)
RUN ./mvnw dependency:go-offline
# Copy source code
COPY src ./src
# Build application
RUN ./mvnw clean package -DskipTests && \
mv target/*.jar target/app.jar
# Production stage (using JRE instead of JDK)
FROM eclipse-temurin:21-jre-jammy AS production
WORKDIR /app
# Install healthcheck dependency and create non-root user
# hadolint ignore=DL3008
RUN apt-get update && apt-get install -y --no-install-recommends curl && \
rm -rf /var/lib/apt/lists/* && \
useradd -m -u 1001 appuser
# Copy JAR from builder
COPY --from=builder --chown=appuser:appuser /app/target/app.jar ./app.jar
# Switch to non-root user
USER appuser
# Expose port
EXPOSE 8080
# Health check
HEALTHCHECK --interval=30s --timeout=3s --start-period=40s --retries=3 \
CMD curl -f http://localhost:8080/actuator/health || exit 1
# Start application
ENTRYPOINT ["java", "-jar", "app.jar"]
Selection Logic:
Node.js: Use for JavaScript/TypeScript applications
Python: Use for Python applications (web, API, scripts)
Go: Use for Go applications (excellent for minimal images)
Java: Use for Spring Boot, Quarkus, or other Java frameworks
Generic: Create custom Dockerfile for other languages
Always Include:
Syntax directive: # syntax=docker/dockerfile:1
Multi-stage build (build + production stages)
Non-root user creation and usage
HEALTHCHECK for services (if applicable)
Proper WORKDIR settings
EXPOSE for documented ports
Clean package manager caches
exec form for CMD/ENTRYPOINT
Stage 4: Generate .dockerignore
Objective: Create comprehensive .dockerignore to reduce build context and prevent secret leaks.
Always create .dockerignore with generated Dockerfile.
Node.js: ~50-150MB with Alpine (vs ~1GB with full node image)
Python: ~150-250MB with slim (vs ~900MB with full python image)
Go: ~5-20MB with distroless/scratch (vs ~800MB with full golang image)
Java: ~200-350MB with JRE (vs ~500MB+ with JDK)
Next steps (required):
## Next Steps
- [ ] Test the build locally: `docker build -t myapp:1.0 .`
- [ ] Run and verify the container works as expected
- [ ] Update CI/CD pipeline to use the new Dockerfile
- [ ] Consider BuildKit cache mounts for faster builds (see references/optimization_patterns.md)
- [ ] Set up automated vulnerability scanning with `docker scout` or `trivy`
- [ ] Push to registry and deploy
Generation Scripts (Optional Reference)
The scripts/ directory contains standalone bash scripts for manual Dockerfile generation outside of this skill:
generate_nodejs.sh - CLI tool for Node.js Dockerfiles
generate_python.sh - CLI tool for Python Dockerfiles
generate_golang.sh - CLI tool for Go Dockerfiles
generate_java.sh - CLI tool for Java Dockerfiles
generate_dockerignore.sh - CLI tool for .dockerignore generation
Purpose: These scripts are reference implementations and manual tools for users who want to generate Dockerfiles via command line without using skill invocation. They demonstrate the same best practices embedded in this skill.
When using this skill: Codex generates Dockerfiles directly using the templates and patterns documented in this SKILL.md, rather than invoking these scripts. The templates in this document are the authoritative source.
# Bad
FROM node:alpine
# Good
FROM node:20-alpine
# Better (with digest for reproducibility)
FROM node:20-alpine@sha256:abc123...
Run as Non-Root:
dockerfile
# Create user
RUN addgroup -g 1001 -S appgroup && \
adduser -S appuser -u 1001 -G appgroup
# Switch to user before CMD
USER appuser
Use Minimal Base Images:
Alpine Linux (small, secure)
Distroless (no shell, minimal attack surface)
Specific runtime images (node:alpine vs node:latest)
Never Hardcode Secrets:
dockerfile
# Bad
ENV API_KEY=secret123
# Good - use build secrets
# docker build --secret id=api_key,src=.env
RUN --mount=type=secret,id=api_key \
API_KEY=$(cat /run/secrets/api_key) ./configure
Optimization Best Practices
Layer Caching:
dockerfile
# Copy dependency files first
COPY package.json package-lock.json ./
RUN npm ci
# Copy application code last
COPY . .
Combine RUN Commands:
dockerfile
# Bad (creates 3 layers)
RUN apt-get update
RUN apt-get install -y curl
RUN rm -rf /var/lib/apt/lists/*
# Good (creates 1 layer)
RUN apt-get update && \
apt-get install -y --no-install-recommends curl && \
rm -rf /var/lib/apt/lists/*
Multi-Stage Builds:
dockerfile
# Build stage - can be large
FROM node:20 AS builder
WORKDIR /app
COPY . .
RUN npm install && npm run build
# Production stage - minimal
FROM node:20-alpine
COPY --from=builder /app/dist ./dist
CMD ["node", "dist/index.js"]
# syntax=docker/dockerfile:1
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY go.* ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o /bin/app
FROM scratch
COPY --from=builder /bin/app /app
ENTRYPOINT ["/app"]
Modern Docker Features (2025)
Multi-Platform Builds with BuildX
Use Case: Build images that work on both AMD64 and ARM64 architectures (e.g., x86 servers and Apple Silicon Macs).
Enable BuildX:
bash
# BuildX is included in Docker Desktop by default
# For Linux, ensure BuildX is installed
docker buildx version
Create Multi-Platform Images:
bash
# Build for multiple platforms
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t myapp:latest \
--push \
.
# Build and load for current platform (testing)
docker buildx build \
--platform linux/amd64 \
-t myapp:latest \
--load \
.
Dockerfile Considerations:
dockerfile
# Most Dockerfiles work across platforms automatically
# Use platform-specific base images when needed
FROM --platform=$BUILDPLATFORM node:20-alpine AS builder
# Access build arguments for platform info
ARG TARGETPLATFORM
ARG BUILDPLATFORM
RUN echo "Building on $BUILDPLATFORM for $TARGETPLATFORM"
When to Use:
Deploying to mixed infrastructure (x86 + ARM)
Supporting Apple Silicon Macs in development
Optimizing for AWS Graviton (ARM-based) instances
Building cross-platform CLI tools
Software Bill of Materials (SBOM)
Use Case: Generate SBOM for supply chain security and compliance (increasingly required in 2025).
Generate SBOM During Build:
bash
# Generate SBOM with BuildKit (Docker 24.0+)
docker buildx build \
--sbom=true \
-t myapp:latest \
.
# SBOM is attached as attestation to the image
# View SBOM
docker buildx imagetools inspect myapp:latest --format "{{ json .SBOM }}"
Generate SBOM from Existing Image:
bash
# Using Syft
syft myapp:latest -o json > sbom.json
# Using Docker Scout
docker scout sbom myapp:latest
Use Case: Dramatically faster builds by persisting package manager caches across builds.
Already covered in detail in references/optimization_patterns.md.
Quick reference:
dockerfile
# syntax=docker/dockerfile:1
# NPM cache mount (30-50% faster builds)
RUN --mount=type=cache,target=/root/.npm \
npm ci
# Go module cache
RUN --mount=type=cache,target=/go/pkg/mod \
go mod download
# Pip cache
RUN --mount=type=cache,target=/root/.cache/pip \
pip install -r requirements.txt
Dockerfile Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Dockerfile Generator compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Dockerfile Generator this skillakin-ozer/cc-devops-skills
Drive the AR.IO Node release process end-to-end — preflight checks, prepare commit, finalize with image SHAs, test docker compose profiles, tag & publish, and post-release cleanup.
This skill should be used when containerizing applications with Docker, creating Dockerfiles, docker-compose configurations, or deploying containers to various platforms.
Covers rolling, blue-green and canary deployments, multi-stage Dockerfiles, a GitHub Actions pipeline, health checks and production readiness for web apps.
Create, generate, or write Dockerfiles and multi-stage Docker images. Dockerfile Generator is an agent skill from akin-ozer/cc-devops-skills. Create, generate, or write Dockerfiles and multi-stage Docker images.
When should I use Dockerfile Generator?
Dockerfile Generator fits situations like: tasks that involve Containers.
How do I install Dockerfile Generator in Claude Code?
Run `npx skills add akin-ozer/cc-devops-skills --skill dockerfile-generator -a claude-code`. Or copy the skill folder (devops-skills-plugin/skills/dockerfile-generator in akin-ozer/cc-devops-skills) into .claude/skills/dockerfile-generator in your project. Claude Code loads it when a task matches its description.
How do I install Dockerfile Generator in Codex?
Run `npx skills add akin-ozer/cc-devops-skills --skill dockerfile-generator -a codex`. Or copy the skill folder (devops-skills-plugin/skills/dockerfile-generator in akin-ozer/cc-devops-skills) into .agents/skills/dockerfile-generator in your project. Codex loads it when a task matches its description.
Can I use Dockerfile Generator in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add akin-ozer/cc-devops-skills --skill dockerfile-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dockerfile-generator, .gemini/skills/dockerfile-generator, .github/skills/dockerfile-generator and .opencode/skills/dockerfile-generator in your project.
What does Dockerfile Generator need to run?
Going by SKILL.md and its folder, Dockerfile Generator needs a shell for the scripts in its folder, the command-line tools its instructions call (docker, bash, hadolint, curl and npm) and credentials named API_KEY. Our summary lists: Python 3; Node.js; A Bash shell; Docker.
Does Dockerfile Generator access the network?
SKILL.md names 5 domains. As links in the text: docs.docker.com, blog.bytescrum.com, betterstack.com, spacelift.io and developers-heaven.net. This is read from the text; nothing was executed.
Is Dockerfile Generator safe to install?
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
What licence does Dockerfile Generator use?
Dockerfile Generator is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Dockerfile Generator use?
About 7.7k tokens (SKILL.md is roughly 31k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 11k tokens, read only when the agent opens those files.
What are the alternatives to Dockerfile Generator?
Skills that share tags, products or a category with Dockerfile Generator: Reflexo Release (Myriad-Dreamin/typst.ts, 1.2k stars), GitHub Actions Creator (FNOSP/FlyNarwhal, 495 stars), Compile Php Wasm (WordPress/wordpress-playground, 2k stars) and Release (ar-io/ar-io-node, 127 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Dockerfile Generator?
akin-ozer (a GitHub user) maintains it in akin-ozer/cc-devops-skills, which has 319 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on July 26, 2026.
Source: akin-ozer/cc-devops-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.