ln-731-docker-generator
Generates Docker and docker-compose configuration for multi-container development
- License 许可
- MIT
- 最近更新
- 2026-05-02
- Stars
- ★ 3
- Forks
- 1
01 前言 Front Matter
- name
- ln-731-docker-generator
- license
- MIT
- description
- Generates Docker and docker-compose configuration for multi-container development
02 资源文件 6
- 参考文档references/docker_compose.template2.8 KB
- 参考文档references/dockerfile_backend_dotnet.template2.6 KB
- 参考文档references/dockerfile_backend_python.template3.2 KB
- 参考文档references/dockerfile_frontend.template2.5 KB
- 参考文档references/dockerignore.template1.9 KB
- 参考文档references/nginx.template3.5 KB
03 SKILL.md 正文
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
04 同仓库更多 Skills
zarr-python
Chunked N-D arrays for cloud storage. Compressed arrays, parallel I/O, S3/GCS integration, NumPy/Dask/Xarray compatible, for large-scale scientific computing pipelines.
zabbix
Zabbix monitoring system automation via API and Python. Use when: (1) Managing hosts, templates, items, triggers, or host groups, (2) Automating monitoring configuration, (3) Sending data via Zabbix trapper/sender, (4) Querying historical data or events, (5) Bulk operations on Zabbix objects, (6) Maintenance window management, (7) User/permission management
x-twitter-growth
X/Twitter growth engine for building audience, crafting viral content, and analyzing engagement. Use when the user wants to grow on X/Twitter, write tweets or threads, analyze their X profile, research competitors on X, plan a posting strategy, or optimize engagement. Complements social-content (generic multi-platform) with X-specific depth: algorithm mechanics, thread engineering, reply strategy, profile optimization, and competitive intelligence via web search.
what-if-oracle
Run structured What-If scenario analysis with multi-branch possibility exploration. Use this skill when the user asks speculative questions like "what if...", "what would happen if...", "what are the possibilities", "explore scenarios", "scenario analysis", "possibility space", "what could go wrong", "best case / worst case", "risk analysis", "contingency planning", "strategic options", or any question about uncertain futures. Also trigger when the user faces a fork-in-the-road decision, wants to stress-test an idea, or needs to think through consequences before committing.
vercel-react-best-practices
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
venue-templates
Access comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.