Agent skill

Writing Dockerfiles

by ancoleman in ancoleman/ai-design-components

Writing optimized, secure, multi-stage Dockerfiles with language-specific patterns (Python, Node.js, Go, Rust), BuildKit features, and distroless images.

MITAuto-check: notesDevOps & Cloud

Install Writing Dockerfiles

skills CLI
$ npx skills add ancoleman/ai-design-components --skill writing-dockerfiles -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ancoleman/ai-design-components writing-dockerfiles --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ancoleman/ai-design-components.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/writing-dockerfiles .claude/skills/writing-dockerfiles && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
writing-dockerfiles
GitHub stars
526
Token cost
~3.2k tokens
SKILL.md length
793 words
Files
16 (incl. scripts, references)
Skills in repo
75
Repo updated
First seen
Licence
MIT

At a glance

Writing optimized, secure, multi-stage Dockerfiles with language-specific patterns (Python, Node.js, Go, Rust), BuildKit features, and distroless images.

  • Works in 3 steps: pip (simple) → Single-stage,… → poetry (production) → Multi-stage,… → uv (fastest) → 10-100x faster than pip
  • Containerizing applications
  • SKILL.md covers When to Use This Skill, Quick Decision Framework, Core Concepts and Language-Specific Patterns, plus 6 more sections
  • Runs Shell and Python scripts from its folder; calls docker, trivy and npm; reaches github.com; needs GITHUB_TOKEN

What it does

Writing Dockerfiles is an agent skill from ancoleman/ai-design-components. Writing optimized, secure, multi-stage Dockerfiles with language-specific patterns (Python, Node.js, Go, Rust), BuildKit features, and distroless images. Use when containerizing applications, optimizing existing Dockerfiles, or reducing image sizes.

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 18 other files, including scripts and reference files (for example `outputs.yaml`, `references/base-image-selection.md` and `references/buildkit-features.md`).

It sits in DevOps & Cloud, covering Containers. It works with Python, Node.js, Rust and Docker. The repository describes itself as: Comprehensive UI/UX and Backend component design skills for AI-assisted development with Claude. The licence is MIT.

When your agent uses it

  • Containerizing applications
  • Optimizing existing Dockerfiles
  • Reducing image sizes

Example prompts

  • “/writing-dockerfiles”

Requirements

  • Python 3
  • Node.js
  • A Bash shell
  • Docker
  • A credential in GITHUB_TOKEN

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. pip (simple) → Single-stage, requirements.txt
  2. poetry (production) → Multi-stage, virtual environment
  3. uv (fastest) → 10-100x faster than pip

What it can do on your machine

Read from SKILL.md and the folder at commit 76551b7. 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 2 files in scripts/ (Shell and Python), which the agent can run.

    Shell commands in SKILL.md call:

    • docker
    • trivy
    • npm
    • python
    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GITHUB_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Writing Dockerfiles loads about 3.2k tokens when it runs, and up to ~31k if it reads all its reference files. Until then it costs about 67 tokens; SKILL.md has 793 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~67
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~31k

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:216
    .env
  • NoteMentions a .env fileSKILL.md:217
    .env.local

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.

SKILL.md

The full file from ancoleman/ai-design-components at commit 76551b7, republished under its MIT licence (© ancoleman). 793 words, ~3,210 tokens.

Download SKILL.mdSave it as .claude/skills/writing-dockerfiles/SKILL.md (or your agent's skills folder). This skill also uses 15 other files; get the full folder from GitHub.
name
writing-dockerfiles
description
Writing optimized, secure, multi-stage Dockerfiles with language-specific patterns (Python, Node.js, Go, Rust), BuildKit features, and distroless images. Use when containerizing applications, optimizing existing Dockerfiles, or reducing image sizes.

Writing Dockerfiles

Create production-grade Dockerfiles with multi-stage builds, security hardening, and language-specific optimizations.

When to Use This Skill

Invoke when:

  • "Write a Dockerfile for [Python/Node.js/Go/Rust] application"
  • "Optimize this Dockerfile to reduce image size"
  • "Use multi-stage build for..."
  • "Secure Dockerfile with non-root user"
  • "Use distroless base image"
  • "Add BuildKit cache mounts"
  • "Prevent secrets from leaking in Docker layers"

Quick Decision Framework

Ask three questions to determine the approach:

1. What language?

  • Python → See references/python-dockerfiles.md
  • Node.js → See references/nodejs-dockerfiles.md
  • Go → See references/go-dockerfiles.md
  • Rust → See references/rust-dockerfiles.md
  • Java → See references/java-dockerfiles.md

2. Is security critical?

  • YES → Use distroless runtime images (see references/security-hardening.md)
  • NO → Use slim/alpine base images

3. Is image size critical?

  • YES (<50MB) → Multi-stage + distroless + static linking
  • NO (<500MB) → Multi-stage + slim base images

Core Concepts

Multi-Stage Builds

Separate build environment from runtime environment to minimize final image size.

Pattern:

dockerfile
# Stage 1: Build
FROM build-image AS builder
RUN compile application

# Stage 2: Runtime
FROM minimal-runtime-image
COPY --from=builder /app/binary /app/
CMD ["/app/binary"]

Benefits:

  • 80-95% smaller images (excludes build tools)
  • Improved security (no compilers in production)
  • Faster deployments
  • Better layer caching
Base Image Selection

Decision matrix:

LanguageBuild StageRuntime StageFinal Size
Go (static)golang:1.22-alpinegcr.io/distroless/static-debian1210-30MB
Rust (static)rust:1.75-alpinescratch5-15MB
Pythonpython:3.12-slimpython:3.12-slim200-400MB
Node.jsnode:20-alpinenode:20-alpine150-300MB
Javamaven:3.9-eclipse-temurin-21eclipse-temurin:21-jre-alpine200-350MB

Distroless images (Google-maintained):

  • gcr.io/distroless/static-debian12 → Static binaries (2MB)
  • gcr.io/distroless/base-debian12 → Dynamic binaries with libc (20MB)
  • gcr.io/distroless/python3-debian12 → Python runtime (60MB)
  • gcr.io/distroless/nodejs20-debian12 → Node.js runtime (150MB)

See references/base-image-selection.md for complete comparison.

BuildKit Features

Enable BuildKit for advanced caching and security:

bash
export DOCKER_BUILDKIT=1
docker build .
# OR
docker buildx build .

Key features:

  • --mount=type=cache → Persistent package manager caches
  • --mount=type=secret → Inject secrets without storing in layers
  • --mount=type=ssh → SSH agent forwarding for private repos
  • Parallel stage execution
  • Improved layer caching

See references/buildkit-features.md for detailed patterns.

Layer Optimization

Order Dockerfile instructions from least to most frequently changing:

dockerfile
# 1. Base image (rarely changes)
FROM python:3.12-slim

# 2. System packages (rarely changes)
RUN apt-get update && apt-get install -y build-essential

# 3. Dependencies manifest (changes occasionally)
COPY requirements.txt .
RUN pip install -r requirements.txt

# 4. Application code (changes frequently)
COPY . .

# 5. Runtime configuration (rarely changes)
CMD ["python", "app.py"]

BuildKit cache mounts:

dockerfile
RUN --mount=type=cache,target=/root/.cache/pip \
    pip install -r requirements.txt

Cache persists across builds, eliminating redundant downloads.

Security Hardening

Essential security practices:

1. Non-root users

dockerfile
# Debian/Ubuntu
RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app
USER appuser

# Alpine
RUN adduser -D -u 1000 appuser && chown -R appuser:appuser /app
USER appuser

# Distroless (built-in)
USER nonroot:nonroot

2. Secret management

dockerfile
# ❌ NEVER: Secret in layer history
RUN git clone https://${GITHUB_TOKEN}@github.com/private/repo.git

# ✅ ALWAYS: BuildKit secret mount
RUN --mount=type=secret,id=github_token \
    TOKEN=$(cat /run/secrets/github_token) && \
    git clone https://${TOKEN}@github.com/private/repo.git

Build with:

bash
docker buildx build --secret id=github_token,src=./token.txt .

3. Vulnerability scanning

bash
# Trivy (recommended)
trivy image myimage:latest

# Docker Scout
docker scout cves myimage:latest

4. Health checks

dockerfile
HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \
  CMD wget --no-verbose --tries=1 --spider http://localhost:8080/health || exit 1

See references/security-hardening.md for comprehensive hardening patterns.

.dockerignore Configuration

Create .dockerignore to exclude unnecessary files:

# Version control
.git
.gitignore

# CI/CD
.github
.gitlab-ci.yml

# IDE
.vscode
.idea

# Testing
tests/
coverage/
**/*_test.go
**/*.test.js

# Build artifacts
node_modules/
dist/
build/
target/
__pycache__/

# Environment
.env
.env.local
*.log

Reduces build context size and prevents leaking secrets.

Language-Specific Patterns

Python Quick Reference

Three approaches:

  1. pip (simple) → Single-stage, requirements.txt
  2. poetry (production) → Multi-stage, virtual environment
  3. uv (fastest) → 10-100x faster than pip

Example: Poetry multi-stage

dockerfile
FROM python:3.12-slim AS builder
RUN --mount=type=cache,target=/root/.cache/pip \
    pip install poetry==1.7.1

COPY pyproject.toml poetry.lock ./
RUN poetry export -f requirements.txt --output requirements.txt

RUN --mount=type=cache,target=/root/.cache/pip \
    python -m venv /opt/venv && \
    /opt/venv/bin/pip install -r requirements.txt

FROM python:3.12-slim
COPY --from=builder /opt/venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
USER 1000:1000
CMD ["python", "-m", "uvicorn", "main:app", "--host", "0.0.0.0"]

See references/python-dockerfiles.md for complete patterns and examples/python-fastapi.Dockerfile.

Node.js Quick Reference

Key patterns:

  • Use npm ci (not npm install) for reproducible builds
  • Multi-stage: Build stage → Production dependencies only
  • Built-in node user (UID 1000)
  • Alpine variant smallest (~180MB vs 1GB)

Example: Express multi-stage

dockerfile
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN --mount=type=cache,target=/root/.npm \
    npm ci
COPY . .
RUN npm run build
RUN npm prune --omit=dev

FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/dist ./dist
USER node
CMD ["node", "dist/index.js"]

See references/nodejs-dockerfiles.md for npm/pnpm/yarn patterns and examples/nodejs-express.Dockerfile.

Go Quick Reference

Smallest possible images:

  • Static binary (CGO_ENABLED=0) + distroless = 10-30MB
  • Strip symbols with -ldflags="-s -w"
  • Cache both /go/pkg/mod and build cache

Example: Distroless static

dockerfile
FROM golang:1.22-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN --mount=type=cache,target=/go/pkg/mod \
    go mod download

COPY . .
RUN --mount=type=cache,target=/go/pkg/mod \
    --mount=type=cache,target=/root/.cache/go-build \
    CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o main .

FROM gcr.io/distroless/static-debian12
COPY --from=builder /app/main /app/main
USER nonroot:nonroot
ENTRYPOINT ["/app/main"]

See references/go-dockerfiles.md and examples/go-microservice.Dockerfile.

Rust Quick Reference

Ultra-small static binaries:

  • musl static linking → No libc dependencies
  • scratch base image (0 bytes overhead)
  • Final image: 5-15MB

Example: Scratch base

dockerfile
FROM rust:1.75-alpine AS builder
RUN apk add --no-cache musl-dev
WORKDIR /app

# Cache dependencies
COPY Cargo.toml Cargo.lock ./
RUN --mount=type=cache,target=/usr/local/cargo/registry \
    mkdir src && echo "fn main() {}" > src/main.rs && \
    cargo build --release --target x86_64-unknown-linux-musl && \
    rm -rf src

# Build application
COPY src ./src
RUN --mount=type=cache,target=/usr/local/cargo/registry \
    cargo build --release --target x86_64-unknown-linux-musl

FROM scratch
COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/app /app
USER 1000:1000
ENTRYPOINT ["/app"]

See references/rust-dockerfiles.md and examples/rust-actix.Dockerfile.

Package Manager Cache Mounts

BuildKit cache mount locations:

LanguagePackage ManagerCache Mount Target
Pythonpip--mount=type=cache,target=/root/.cache/pip
Pythonpoetry--mount=type=cache,target=/root/.cache/pypoetry
Pythonuv--mount=type=cache,target=/root/.cache/uv
Node.jsnpm--mount=type=cache,target=/root/.npm
Node.jspnpm--mount=type=cache,target=/root/.local/share/pnpm/store
Gogo mod--mount=type=cache,target=/go/pkg/mod
Rustcargo--mount=type=cache,target=/usr/local/cargo/registry

Persistent caches eliminate redundant package downloads across builds.

Show full SKILL.md (301 more words)Show less

Validation and Testing

Validate Dockerfile quality:

bash
# Lint Dockerfile
python scripts/validate_dockerfile.py Dockerfile

# Scan for vulnerabilities
trivy image myimage:latest

# Analyze image size
docker images myimage:latest
docker history myimage:latest

Compare optimization results:

bash
# Before optimization
docker build -t myapp:before .

# After optimization
docker build -t myapp:after .

# Compare
bash scripts/analyze_image_size.sh myapp:before myapp:after

See scripts/validate_dockerfile.py for automated Dockerfile linting.

Upstream (provide input):

  • testing-strategies → Test application before containerizing
  • security-hardening → Application-level security before Docker layer

Downstream (consume Dockerfiles):

  • building-ci-pipelines → Build and push Docker images in CI
  • kubernetes-operations → Deploy containers to K8s clusters
  • infrastructure-as-code → Deploy containers with Terraform/Pulumi

Parallel (related context):

  • secret-management → Inject runtime secrets (K8s secrets, vaults)
  • observability → Container logging and metrics collection

Common Patterns Quick Reference

1. Static binary (Go/Rust) → Smallest image

  • Build: Language-specific builder image
  • Runtime: gcr.io/distroless/static-debian12 or scratch
  • Size: 5-30MB

2. Interpreted language (Python/Node.js) → Production-optimized

  • Build: Install dependencies, build artifacts
  • Runtime: Same base, production dependencies only
  • Size: 150-400MB

3. JVM (Java) → Optimized runtime

  • Build: Maven/Gradle with full JDK
  • Runtime: JRE-only image (alpine variant)
  • Size: 200-350MB

4. Security-critical → Maximum hardening

  • Base: Distroless images
  • User: Non-root (nonroot:nonroot)
  • Secrets: BuildKit secret mounts
  • Scan: Trivy/Docker Scout in CI

5. Development → Fast iteration

  • Base: Full language image (not slim)
  • Volumes: Mount source code
  • Hot reload: Language-specific tools
  • Not covered in this skill (see Docker Compose docs)

Anti-Patterns to Avoid

❌ Never:

  • Use latest tags (unpredictable builds)
  • Run as root in production
  • Store secrets in ENV vars or layers
  • Install unnecessary packages
  • Combine unrelated RUN commands (breaks caching)
  • Skip .dockerignore (bloated build context)

✅ Always:

  • Pin exact image versions (python:3.12.1-slim, not python:3)
  • Create and use non-root user
  • Use BuildKit secret mounts for credentials
  • Minimize layers and image size
  • Order commands from least to most frequently changing
  • Create .dockerignore file

Additional Resources

Base image registries:

  • Google Distroless: gcr.io/distroless/*
  • Docker Hub Official: python:*, node:*, golang:*
  • Red Hat UBI: registry.access.redhat.com/ubi9/*

Vulnerability scanners:

  • Trivy (recommended): trivy image myimage:latest
  • Docker Scout: docker scout cves myimage:latest
  • Grype: grype myimage:latest

Reference documentation:

  • references/base-image-selection.md → Complete base image comparison
  • references/buildkit-features.md → Advanced BuildKit patterns
  • references/security-hardening.md → Comprehensive security guide
  • Language-specific references in references/ directory
  • Working examples in examples/ directory

© ancoleman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 15 other files (scripts, references) in skills/writing-dockerfiles of ancoleman/ai-design-components.

  • SKILL.md
  • examples/go-microservice.Dockerfile
  • examples/nodejs-express.Dockerfile
  • examples/python-fastapi.Dockerfile
  • examples/rust-actix.Dockerfile
  • outputs.yaml
  • references/base-image-selection.md
  • references/buildkit-features.md
  • references/go-dockerfiles.md
  • references/java-dockerfiles.md
  • references/nodejs-dockerfiles.md
  • references/python-dockerfiles.md
  • references/rust-dockerfiles.md
  • references/security-hardening.md
  • scripts/analyze_image_size.sh
  • scripts/validate_dockerfile.py

Open the folder on GitHubat commit 76551b7

Compare with similar skills

Writing Dockerfiles 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.

Writing Dockerfiles compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Writing Dockerfiles this skillancoleman/ai-design-components526—~3.2kAutomated safety check: NotesMIT
Deploy To Tempsgotempsh/temps826—~1.3kAutomated safety check: NotesApache-2.0
Containerization AssistantArabelaTso/Skills-4-SE253—~2.9kAutomated safety check: NotesApache-2.0
GitHub Actions CreatorFNOSP/FlyNarwhal4951 repos~2.4kAutomated safety check: PassAGPL-3.0
Qdrant Advisorqdrant/skills253—~1.7kAutomated safety check: PassApache-2.0
Oci Functions Deployoracle/skills873—~4.6kAutomated safety check: PassUPL-1.0

Similar skills

  • Deploy To Temps

    gotempsh/temps

    Deploy applications to the Temps platform with automatic framework detection, Dockerfile generation, and container orchestration.

    826 GitHub stars~1.3k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Containerization Assistant

    ArabelaTso/Skills-4-SE

    Generate Dockerfiles, Docker Compose configurations, and Kubernetes manifests for containerizing applications.

    253 GitHub stars~2.9k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check: notes
  • GitHub Actions Creator

    FNOSP/FlyNarwhal

    A skill your agent uses when the user wants to create, generate, or set up a GitHub Actions workflow.

    495 GitHub starsUsed in 1 repo~2.4k tokens
    DevOps & CloudAuto-check passed
  • Qdrant Advisor

    qdrant/skills

    Official

    Diagnose, troubleshoot, and advise on any Qdrant deployment by loading the latest official Qdrant skills live from skills.qdrant.tech.

    253 GitHub stars~1.7k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Official

    Build, configure, scaffold, and deploy OCI Functions from a local machine using a dependency-first, Fn-context-guided flow with argv-safe mutation execution, nonce-scoped confirmations, and a…

    873 GitHub stars~4.6k tokensUpdated 2 days ago
    DevOps & CloudAuto-check passed
  • Check Cross Runtime

    ayutaz/piper-plus

    Python canonical (src/pythonrun/piperplus/, src/python/pipertrain/, src/python/g2p/piperplusg2p/) を変更した PR で、 ONNX I/O 以外の追随漏れ (phonemizer / config schema / CLI flag / data 形式 / API 変更) を 7 ランタイム +…

    220 GitHub stars~3.5k tokensUpdated today
    DevOps & CloudAuto-check passed

More from ancoleman/ai-design-components

All 75 skills in this repo
  • Building AI Chat

    ancoleman/ai-design-components

    Builds AI chat interfaces and conversational UI with streaming responses, context management, and multi-modal support.

    526 GitHub starsUsed in 1 repo~3.4k tokens
    Auto-check passed
  • Building Forms

    ancoleman/ai-design-components

    Builds form components and data collection interfaces including contact forms, registration flows, checkout processes, surveys, and settings pages.

    526 GitHub stars~3.7k tokensUpdated 10 mo ago
    Auto-check passed
  • Building Tables

    ancoleman/ai-design-components

    Builds tables and data grids for displaying tabular information, from simple HTML tables to complex enterprise data grids.

    526 GitHub stars~1.8k tokensUpdated 10 mo ago
    Auto-check passed
  • Creating Dashboards

    ancoleman/ai-design-components

    Creates comprehensive dashboard and analytics interfaces that combine data visualization, KPI cards, real-time updates, and interactive layouts.

    526 GitHub stars~3.5k tokensUpdated 10 mo ago
    Auto-check passed
  • Designing Layouts

    ancoleman/ai-design-components

    Designs layout systems and responsive interfaces including grid systems, flexbox patterns, sidebar layouts, and responsive breakpoints.

    526 GitHub stars~1.7k tokensUpdated 10 mo ago
    Auto-check passed
  • Displaying Timelines

    ancoleman/ai-design-components

    Displays chronological events and activity through timelines, activity feeds, Gantt charts, and calendar interfaces.

    526 GitHub stars~2.7k tokensUpdated 10 mo ago
    Auto-check passed

Categories

Questions about Writing Dockerfiles

What does Writing Dockerfiles do?

Writing optimized, secure, multi-stage Dockerfiles with language-specific patterns (Python, Node.js, Go, Rust), BuildKit features, and distroless images. Writing Dockerfiles is an agent skill from ancoleman/ai-design-components.js, Go, Rust), BuildKit features, and distroless images.

When should I use Writing Dockerfiles?

Writing Dockerfiles fits situations like: containerizing applications; optimizing existing Dockerfiles; reducing image sizes.

How do I install Writing Dockerfiles in Claude Code?

Run `npx skills add ancoleman/ai-design-components --skill writing-dockerfiles -a claude-code`. Or copy the skill folder (skills/writing-dockerfiles in ancoleman/ai-design-components) into .claude/skills/writing-dockerfiles in your project. Claude Code loads it when a task matches its description.

How do I install Writing Dockerfiles in Codex?

Run `npx skills add ancoleman/ai-design-components --skill writing-dockerfiles -a codex`. Or copy the skill folder (skills/writing-dockerfiles in ancoleman/ai-design-components) into .agents/skills/writing-dockerfiles in your project. Codex loads it when a task matches its description.

Can I use Writing Dockerfiles 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 ancoleman/ai-design-components --skill writing-dockerfiles -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/writing-dockerfiles, .gemini/skills/writing-dockerfiles, .github/skills/writing-dockerfiles and .opencode/skills/writing-dockerfiles in your project.

What does Writing Dockerfiles need to run?

Going by SKILL.md and its folder, Writing Dockerfiles needs a shell and Python for the scripts in its folder, the command-line tools its instructions call (docker, trivy, npm, python and bash) and credentials named GITHUB_TOKEN. Our summary lists: Python 3; Node.js; A Bash shell; Docker; A credential in GITHUB_TOKEN.

Does Writing Dockerfiles access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Writing Dockerfiles 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 Writing Dockerfiles use?

Writing Dockerfiles is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Writing Dockerfiles use?

About 3.2k tokens (SKILL.md is roughly 13k 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 28k tokens, read only when the agent opens those files.

What are the alternatives to Writing Dockerfiles?

Skills that share tags, products or a category with Writing Dockerfiles: Deploy To Temps (gotempsh/temps, 826 stars), Containerization Assistant (ArabelaTso/Skills-4-SE, 253 stars), GitHub Actions Creator (FNOSP/FlyNarwhal, 495 stars) and Qdrant Advisor (qdrant/skills, 253 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Writing Dockerfiles?

ancoleman (a GitHub user) maintains it in ancoleman/ai-design-components, which has 526 GitHub stars. The repository holds 75 skills in this directory. The repository was last updated on December 11, 2025.

Source: ancoleman/ai-design-components on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.