多容器配置
ln-731-docker-generator
by levnikolaevich
按前端、.NET 或 Python 技术栈自动生成 Dockerfile、docker-compose、.dockerignore 和 nginx 配置,适合多容器项目初始化时搭建本地与生产一致的开发环境。
为多容器开发自动生成 Docker 与 docker-compose 配置,省去手写编排的繁琐,搭环境更快更稳。
安装
claude skill add --url github.com/levnikolaevich/claude-code-skills/tree/master/ln-731-docker-generator文档
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:
- Check if file already exists (warn before overwrite)
- Apply variable substitution
- Write file to appropriate location
- Validate syntax where possible
File Locations:
Dockerfile.frontend->src/frontend/DockerfileDockerfile.backend-> project rootdocker-compose.yml-> project root.dockerignore-> project rootnginx.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 configvalidates 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
- Version Detection: Use detected versions from coordinator, not hardcoded defaults.
- Idempotent: Check file existence before writing. Warn if overwriting.
- Template-based: All generation uses templates from references/. Do NOT hardcode file contents.
- 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
相关 Skills
可观测性设计
by alirezarezvani
面向生产系统规划可落地的可观测性体系,串起指标、日志、链路追踪与 SLI/SLO、错误预算、告警和仪表盘设计,适合搭建监控平台与优化故障响应。
✎ 把监控、日志、链路追踪串起来,帮助团队从设计阶段构建可观测性,排障更快、系统演进更稳。
AWS架构师
by alirezarezvani
面向初创团队规划 AWS 架构,覆盖 Serverless、ECS、Aurora 等方案,可生成 CloudFormation 模板,兼顾成本优化、CI/CD 搭建与迁移上云。
✎ 特别适合创业团队,用无服务器模式和 IaC 模板快速搭好 AWS 架构,连成本优化、CI/CD 与迁移路径都能一并规划。
环境密钥管理
by alirezarezvani
统一梳理dev/staging/prod的.env和密钥流程,自动生成.env.example、校验必填变量、扫描Git历史泄漏,并联动Vault、AWS SSM、1Password、Doppler完成轮换。
✎ 统一管理环境变量、密钥与配置,减少泄露和部署混乱,安全治理与团队协作一起做好,DevOps 场景很省心。
相关 MCP 服务
kubefwd
编辑精选by txn2
kubefwd 是让 AI 帮你批量转发 Kubernetes 服务到本地的开发神器。
✎ 微服务开发者最头疼的本地调试问题,它一键搞定——自动分配 IP 避免端口冲突,还能用自然语言查询状态。但依赖 AI 工作流,纯命令行爱好者可能觉得不够直接。
Cloudflare
编辑精选by Cloudflare
Cloudflare MCP Server 是让你用自然语言管理 Workers、KV 和 R2 等云资源的工具。
✎ 这个工具解决了开发者频繁切换控制台和文档的痛点,特别适合那些在 Cloudflare 上部署无服务器应用、需要快速调试或管理配置的团队。不过,由于它依赖多个子服务器,初次设置可能有点繁琐,建议先从 Workers Bindings 这类核心功能入手。
Terraform
编辑精选by hashicorp
Terraform MCP Server 是让 AI 助手直接操作 Terraform Registry 和 HCP Terraform 的桥梁。
✎ 如果你经常在 Terraform 里翻文档找模块配置,这个服务器能省不少时间——直接问 Claude 就能生成准确的代码片段。最适合管理多云基础设施的团队,但注意它目前只适合本地使用,别在生产环境里暴露 HTTP 端点。