mcpField
L
ln-731-docker-generator

ln-731-docker-generator

github.com/levnikolaevich云与 DevOps584379 次安装2 天前更新
代码仓库

关于 ln-731-docker-generator

为前端、.NET 和 Python 项目生成 Docker 配置的 Skill。它依据模板和检测到的项目版本创建容器文件,但不构建镜像或管理部署。

主要功能

  1. 01生成 Dockerfile 和 docker-compose.yml
  2. 02创建 .dockerignore 与 Nginx 配置
  3. 03支持前端、.NET 和 Python 技术栈
  4. 04替换检测到的版本和项目变量
  5. 05采用非 root 用户、固定镜像版本与健康检查

适用场景

  1. 01为前端项目添加容器配置
  2. 02为 .NET 或 Python 后端准备 Docker 文件
  3. 03生成适用于开发和生产的容器配置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-731-docker-generator

安装后在 Claude Code 中输入/ln-731-docker-generator确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/templates/
docker_compose.template
dockerfile_backend_dotnet.template
dockerfile_backend_python.template
dockerfile_frontend.template
dockerignore.template
nginx.template

详细介绍

**路径:**文件路径(references/、../ln-*)均相对于此技能目录。

ln-731-docker-generator

**类型:**L3 Worker
**类别:**7XX 项目引导

为容器化开发生成可用于生产环境的 Docker 配置。


目的与范围

为本地开发和生产环境创建 Docker 基础设施:

  • **执行:**生成 Dockerfile、docker-compose、.dockerignore、nginx 配置
  • **不执行:**构建镜像、启动容器、管理部署

输入

输入来源描述
技术栈类型ln-730 coordinatorfrontend、backend-dotnet、backend-python
版本自动检测Node.js、.NET、Python 版本
项目名称目录名称用于容器命名
端口默认值或检测结果前端:3000,后端:5000/8000,数据库:5432

输出

文件用途模板
Dockerfile.frontend前端构建与服务dockerfile_frontend.template
Dockerfile.backend后端构建与运行dockerfile_backend_dotnet.template 或 dockerfile_backend_python.template
docker-compose.yml服务编排docker_compose.template
.dockerignore构建上下文排除项dockerignore.template
nginx.conf前端代理配置nginx.template

工作流

阶段 1:输入验证

验证从协调器收到的配置:

  • 检查技术栈类型是否受支持(frontend、backend-dotnet、backend-python)
  • 验证版本是否有效(Node 18+、.NET 8+、Python 3.10+)
  • 确认项目目录存在

输出:已验证的配置或错误

阶段 2:模板选择

根据技术栈选择适当的模板:

技术栈使用的模板
仅前端dockerfile_frontend、nginx、dockerignore
后端 .NETdockerfile_backend_dotnet、docker_compose、dockerignore
后端 Pythondockerfile_backend_python、docker_compose、dockerignore
全栈 .NET以上所有模板(dotnet 变体)
全栈 Python以上所有模板(python 变体)
阶段 3:变量替换

将模板变量替换为检测到的值:

变量来源示例
{{NODE_VERSION}}package.json engines 或默认值22
{{DOTNET_VERSION}}*.csproj TargetFramework9.0
{{PYTHON_VERSION}}pyproject.toml 或默认值3.12
{{PROJECT_NAME}}目录名称my-app
{{DLL_NAME}}*.csproj AssemblyNameMyApp.Api.dll
{{FRONTEND_PORT}}默认值或检测结果3000
{{BACKEND_PORT}}取决于技术栈5000(.NET)、8000(Python)
{{BACKEND_HOST}}服务名称backend
{{CMD}}取决于框架["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"](FastAPI)或 ["gunicorn", "--bind", "0.0.0.0:8000", "{{PROJECT_NAME}}.wsgi:application"](Django)
阶段 4:文件生成

根据模板生成文件:

  1. 检查文件是否已存在(覆盖前发出警告)
  2. 应用变量替换
  3. 将文件写入相应位置
  4. 尽可能验证语法

文件位置:

  • Dockerfile.frontend -> src/frontend/Dockerfile
  • Dockerfile.backend -> 项目根目录
  • docker-compose.yml -> 项目根目录
  • .dockerignore -> 项目根目录
  • nginx.conf -> src/frontend/nginx.conf

支持的技术栈

前端:React/Vite + Nginx

要求:

  • package.json 中包含 build 脚本
  • Vite 或 CRA 配置

生成内容:

  • 多阶段 Dockerfile(builder + nginx)
  • 带有 SPA 路由和 API 代理的 Nginx 配置
后端:.NET 8/9

要求:

  • 根目录中有 *.sln 文件
  • *.csproj 中包含 TargetFramework

生成内容:

  • 多阶段 Dockerfile(SDK 构建 + ASP.NET 运行时)
  • 健康检查端点配置
后端:Python(FastAPI/Django)

要求:

  • 有 requirements.txt 或 pyproject.toml

生成内容:

  • 多阶段 Dockerfile(构建器 + 精简运行时)
  • uvicorn(FastAPI)或 gunicorn(Django)入口点

安全与性能最佳实践

所有生成的文件均遵循以下准则:

实践实现方式
非 root 用户创建并使用 appuser(UID 1001)
精简镜像Alpine/slim 变体
多阶段构建不在运行时镜像中包含构建工具
不包含密钥使用环境变量,而非硬编码
健康检查内置 HEALTHCHECK 指令(wget/curl)
指定版本固定基础镜像版本(例如 nginx:1.27-alpine)
非交互模式ARG DEBIAN_FRONTEND=noninteractive
层缓存先复制依赖文件,最后复制源代码
BuildKit 缓存对 pip 使用 --mount=type=cache
Python 优化PYTHONDONTWRITEBYTECODE=1、PYTHONUNBUFFERED=1

质量标准

生成的文件必须满足:

  • docker-compose config 验证无错误
  • 所有基础镜像均使用指定版本(而非 latest)
  • 所有 Dockerfile 均配置了非 root 用户
  • 所有服务均配置了健康检查
  • .dockerignore 排除所有敏感文件
  • 不包含硬编码的密钥或密码

重要说明

  1. 版本检测:使用协调器检测到的版本,而非硬编码的默认值。
  2. 幂等性:写入前检查文件是否存在。如需覆盖,发出警告。
  3. 基于模板:所有生成内容均使用 references/ 中的模板。切勿硬编码文件内容。
  4. 安全优先:每个生成的文件都必须遵循安全最佳实践。

参考文件

文件用途
dockerfile_frontend.templateReact/Vite 多阶段 Dockerfile
dockerfile_backend_dotnet.template.NET 多阶段 Dockerfile
dockerfile_backend_python.templatePython 多阶段 Dockerfile
docker_compose.templatedocker-compose.yml 模板
dockerignore.template.dockerignore 模板
nginx.templateNginx 配置

完成定义

  • 为检测到的所有技术栈组件(前端/后端)生成 Dockerfile
  • docker-compose.yml 验证无错误(docker-compose config)
  • .dockerignore 排除敏感文件和构建产物
  • 所有基础镜像均使用固定版本(而非 latest)

版本: 1.2.0 最后更新: 2026-01-21

评论

支持 Markdown