Claude-Skills docker-development

install
source · Clone the upstream repo
git clone https://github.com/borghei/Claude-Skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/borghei/Claude-Skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/engineering/docker-development" ~/.claude/skills/borghei-claude-skills-docker-development && rm -rf "$T"
manifest: engineering/docker-development/SKILL.md
source content

Docker Development

Category: Engineering Domain: Container Development & Optimization

Overview

The Docker Development skill provides automated analysis of Dockerfiles and docker-compose configurations. It identifies layer optimization opportunities, security issues, best practice violations, and compose service misconfigurations. Use this skill to enforce container standards across your team and catch issues before they reach production.

Quick Start

# Analyze a Dockerfile for best practices
python scripts/dockerfile_analyzer.py --file Dockerfile

# Analyze with JSON output
python scripts/dockerfile_analyzer.py --file Dockerfile --format json

# Validate a docker-compose file
python scripts/compose_validator.py --file docker-compose.yml

# Check for port conflicts across compose files
python scripts/compose_validator.py --file docker-compose.yml --check-ports

Tools Overview

dockerfile_analyzer.py

Analyzes Dockerfiles for best practices, security issues, and optimization opportunities.

FeatureDescription
Layer optimizationDetects unnecessary layers, recommends combining RUN statements
Multi-stage analysisValidates multi-stage build patterns and final image size
Security scanningFlags running as root, use of latest tags, exposed secrets
Base image checksRecommends smaller base images (alpine, distroless, slim)
Cache optimizationIdentifies poor layer ordering that breaks Docker cache
# Full analysis
python scripts/dockerfile_analyzer.py --file Dockerfile

# Security-focused scan
python scripts/dockerfile_analyzer.py --file Dockerfile --security-only

# JSON output for CI integration
python scripts/dockerfile_analyzer.py --file Dockerfile --format json

compose_validator.py

Validates docker-compose files for correctness, dependency issues, and port conflicts.

FeatureDescription
Schema validationChecks compose file structure and syntax
Dependency graphValidates depends_on chains for circular dependencies
Port conflict detectionIdentifies duplicate host port bindings
Volume mount checksValidates volume paths and mount configurations
Network analysisChecks network definitions and service connectivity
# Full validation
python scripts/compose_validator.py --file docker-compose.yml

# Check port conflicts only
python scripts/compose_validator.py --file docker-compose.yml --check-ports

# JSON output
python scripts/compose_validator.py --file docker-compose.yml --format json

Workflows

Dockerfile Review Workflow

  1. Analyze - Run dockerfile_analyzer.py against the target Dockerfile
  2. Review findings - Address critical security issues first (root user, secrets)
  3. Optimize layers - Combine RUN statements, reorder for cache efficiency
  4. Validate base images - Switch to minimal base images where possible
  5. Re-analyze - Confirm improvements and verify no regressions

Compose Validation Workflow

  1. Validate structure - Run compose_validator.py for syntax and schema checks
  2. Check dependencies - Review service dependency graph for circular refs
  3. Audit ports - Ensure no host port conflicts across services
  4. Review volumes - Confirm volume mounts are correct and necessary
  5. Network review - Verify service isolation and connectivity

CI Integration Workflow

# Example GitHub Actions step
- name: Docker Lint
  run: |
    python scripts/dockerfile_analyzer.py --file Dockerfile --format json > results.json
    python scripts/compose_validator.py --file docker-compose.yml --format json >> results.json

Reference Documentation

Common Patterns Quick Reference

PatternGoodBad
Base image
FROM python:3.12-slim
FROM python:latest
User
USER appuser
Running as root
Layer combining
RUN apt-get update && apt-get install -y pkg
Separate RUN for update and install
COPY orderingCopy requirements first, then codeCopy everything at once
Multi-stageUse builder stage + minimal runtimeSingle stage with build tools
SecretsUse build secrets or env at runtime
COPY .env .
or
ENV SECRET=value
Health checks
HEALTHCHECK CMD curl -f http://localhost/
No health check defined
.dockerignoreInclude node_modules, .git, etc.No .dockerignore file

Compose Patterns

PatternGoodBad
Restart policy
restart: unless-stopped
No restart policy
Resource limits
deploy.resources.limits
set
Unlimited resources
Named volumes
volumes: [db-data:/var/lib/postgresql]
Anonymous volumes
NetworksExplicit network definitionsDefault bridge only
Environment
env_file: .env
Inline secrets in compose