Agent Skills: ln-731-docker-generator

Generates Docker and docker-compose configuration for multi-container development

UncategorizedID: levnikolaevich/claude-code-skills/ln-731-docker-generator

Install this agent skill to your local

pnpm dlx add-skill https://github.com/levnikolaevich/claude-code-skills/tree/HEAD/ln-731-docker-generator

Skill Files

Browse the full folder contents for ln-731-docker-generator.

Download Skill

Loading file tree…

ln-731-docker-generator/SKILL.md

Skill Metadata

Name
ln-731-docker-generator
Description
Generates Docker and docker-compose configuration for multi-container development

Paths: File paths (shared/, references/, ../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root.

ln-731-docker-generator

Type: L3 Worker Category: 7XX Project Bootstrap Parent: ln-730-devops-setup

Generates production-ready Docker configuration for containerized development.


Purpose & Scope

Creates Docker infrastructure for local development and production:

  • Does: Generate Dockerfiles, docker-compose, .dockerignore, nginx config
  • Does NOT: Build images, start containers, manage deployments

Inputs

| Input | Source | Description | |-------|--------|-------------| | Stack Type | ln-730 coordinator | frontend, backend-dotnet, backend-python | | Versions | Auto-detected | Node.js, .NET, Python versions | | Project Name | Directory name | Used for container naming | | Ports | Defaults or detected | Frontend: 3000, Backend: 5000/8000, DB: 5432 |


Outputs

| File | Purpose | Template | |------|---------|----------| | Dockerfile.frontend | Frontend build & serve | dockerfile_frontend.template | | Dockerfile.backend | Backend build & run | dockerfile_backend_dotnet.template or dockerfile_backend_python.template | | docker-compose.yml | Service orchestration | docker_compose.template | | .dockerignore | Build context exclusions | dockerignore.template | | nginx.conf | Frontend proxy config | nginx.template |


Workflow

Phase 1: Input Validation

Validate received configuration from coordinator:

  • Check stack type is supported (frontend, backend-dotnet, backend-python)
  • Verify versions are valid (Node 18+, .NET 8+, Python 3.10+)
  • Confirm project directory exists

Output: Validated configuration or error

Phase 2: Template Selection

Select appropriate templates based on stack:

| Stack | Templates Used | |-------|----------------| | Frontend only | dockerfile_frontend, nginx, dockerignore | | Backend .NET | dockerfile_backend_dotnet, docker_compose, dockerignore | | Backend Python | dockerfile_backend_python, docker_compose, dockerignore | | Full stack .NET | All of the above (dotnet variant) | | Full stack Python | All of the above (python variant) |

Phase 3: Variable Substitution

Replace template variables with detected values:

| Variable | Source | Example | |----------|--------|---------| | {{NODE_VERSION}} | package.json engines or default | 22 | | {{DOTNET_VERSION}} | *.csproj TargetFramework | 9.0 | | {{PYTHON_VERSION}} | pyproject.toml or default | 3.12 | | {{PROJECT_NAME}} | Directory name | my-app | | {{DLL_NAME}} | *.csproj AssemblyName | MyApp.Api.dll | | {{FRONTEND_PORT}} | Default or detected | 3000 | | {{BACKEND_PORT}} | Stack-dependent | 5000 (.NET), 8000 (Python) | | {{BACKEND_HOST}} | Service name | backend | | {{CMD}} | Framework-dependent | ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] (FastAPI) or ["gunicorn", "--bind", "0.0.0.0:8000", "{{PROJECT_NAME}}.wsgi:application"] (Django) |

Phase 4: File Generation

Generate files from templates:

  1. Check if file already exists (warn before overwrite)
  2. Apply variable substitution
  3. Write file to appropriate location
  4. Validate syntax where possible

File Locations:

  • Dockerfile.frontend -> src/frontend/Dockerfile
  • Dockerfile.backend -> project root
  • docker-compose.yml -> project root
  • .dockerignore -> project root
  • nginx.conf -> src/frontend/nginx.conf

Supported Stacks

Frontend: React/Vite + Nginx

Requirements:

  • package.json with build script
  • Vite or CRA configuration

Generated:

  • Multi-stage Dockerfile (builder + nginx)
  • Nginx config with SPA routing and API proxy

Backend: .NET 8/9

Requirements:

  • *.sln file in root
  • *.csproj with TargetFramework

Generated:

  • Multi-stage Dockerfile (SDK build + ASP.NET runtime)
  • Health check endpoint configuration

Backend: Python (FastAPI/Django)

Requirements:

  • requirements.txt or pyproject.toml

Generated:

  • Multi-stage Dockerfile (builder + slim runtime)
  • uvicorn (FastAPI) or gunicorn (Django) entrypoint

Security & Performance Best Practices

All generated files follow these guidelines:

| Practice | Implementation | |----------|----------------| | Non-root user | Create and use appuser (UID 1001) | | Minimal images | Alpine/slim variants | | Multi-stage builds | Exclude build tools from runtime | | No secrets | Use environment variables, not hardcoded | | Health checks | Built-in HEALTHCHECK instructions (wget/curl) | | Specific versions | Pin base image versions (e.g., nginx:1.27-alpine) | | Non-interactive mode | ARG DEBIAN_FRONTEND=noninteractive | | Layer caching | Copy dependency files first, source code last | | BuildKit cache | Use --mount=type=cache for pip | | Python optimization | PYTHONDONTWRITEBYTECODE=1, PYTHONUNBUFFERED=1 |


Quality Criteria

Generated files must meet:

  • [ ] docker-compose config validates without errors
  • [ ] All base images use specific versions (not latest)
  • [ ] Non-root user configured in all Dockerfiles
  • [ ] Health checks present for all services
  • [ ] .dockerignore excludes all sensitive files
  • [ ] No hardcoded secrets or passwords

Critical Notes

  1. Version Detection: Use detected versions from coordinator, not hardcoded defaults.
  2. Idempotent: Check file existence before writing. Warn if overwriting.
  3. Template-based: All generation uses templates from references/. Do NOT hardcode file contents.
  4. Security First: Every generated file must follow security best practices.

Reference Files

| File | Purpose | |------|---------| | dockerfile_frontend.template | React/Vite multi-stage Dockerfile | | dockerfile_backend_dotnet.template | .NET multi-stage Dockerfile | | dockerfile_backend_python.template | Python multi-stage Dockerfile | | docker_compose.template | docker-compose.yml template | | dockerignore.template | .dockerignore template | | nginx.template | Nginx configuration |


Version: 1.2.0 Last Updated: 2026-01-21