D

Docker配置生成器

作者:鹿Sir开发工具v1

Docker配置生成器,自动生成生产级Dockerfile和docker-compose配置。支持前端(React/Vue)、后端(Java/Python/Node.js/Go)、全栈等多种技术栈。当需要容器化项目、生成Docker配置、创建docker-compose编排时使用。触发词:Docker、Dockerfile、docker-compose、容器化、容器配置、多容器编排、Docker生成。

下载量
255
点赞
64
价格
免费

技能文档

---
name: docker-peizhi-shengcheng
description: "Docker配置生成器,自动生成生产级Dockerfile和docker-compose配置。支持前端(React/Vue)、后端(Java/Python/Node.js/Go)、全栈等多种技术栈。当需要容器化项目、生成Docker配置、创建docker-compose编排时使用。触发词:Docker、Dockerfile、docker-compose、容器化、容器配置、多容器编排、Docker生成。"
---

# Docker 配置生成器

生成生产级 Docker 配置,支持容器化开发和部署。

## 功能范围

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

## 输入参数

| 参数 | 来源 | 说明 |
|------|------|------|
| **技术栈** | 用户指定或自动检测 | frontend, backend-java, backend-python, backend-node, backend-go |
| **版本号** | 自动检测 | Java/Python/Node.js/Go 版本 |
| **项目名称** | 目录名 | 用于容器命名 |
| **端口** | 默认或检测 | 前端:3000, 后端:5000/8000, 数据库:5432 |

## 输出文件

| 文件 | 用途 |
|------|------|
| `Dockerfile` | 应用构建和运行 |
| `docker-compose.yml` | 服务编排 |
| `.dockerignore` | 构建上下文排除 |
| `nginx.conf` | 前端代理配置(前端项目) |

## 工作流程

### 阶段一:输入验证
- 检查技术栈是否支持
- 验证版本号有效性
- 确认项目目录存在

### 阶段二:模板选择

| 技术栈 | 使用模板 |
|--------|----------|
| **前端** | Dockerfile(多阶段构建+nginx) + nginx.conf + .dockerignore |
| **后端 Java** | Dockerfile(SDK构建+JRE运行) + docker-compose + .dockerignore |
| **后端 Python** | Dockerfile(构建+slim运行) + docker-compose + .dockerignore |
| **后端 Node.js** | Dockerfile(构建+node运行) + docker-compose + .dockerignore |
| **后端 Go** | Dockerfile(编译+scratch/alpine) + docker-compose + .dockerignore |
| **全栈** | 以上组合 |

### 阶段三:变量替换

| 变量 | 来源 | 示例 |
|------|------|------|
| `JAVA_VERSION` | pom.xml/build.gradle | 21 |
| `PYTHON_VERSION` | pyproject.toml/requirements.txt | 3.12 |
| `NODE_VERSION` | package.json engines | 22 |
| `GO_VERSION` | go.mod | 1.22 |
| `PROJECT_NAME` | 目录名 | my-app |
| `FRONTEND_PORT` | 默认或检测 | 3000 |
| `BACKEND_PORT` | 技术栈决定 | 8080(Java)/8000(Python) |

### 阶段四:文件生成
1. 检查文件是否已存在(覆盖前警告)
2. 执行变量替换
3. 写入文件到对应位置
4. 语法验证

## 支持的技术栈

### 前端:React/Vue + Nginx
- 多阶段 Dockerfile(builder + nginx)
- Nginx 配置含 SPA 路由和 API 代理
- 静态资源缓存配置

### 后端:Java (Spring Boot/Maven/Gradle)
- 多阶段 Dockerfile(Maven/Gradle 构建 + JRE 运行)
- 健康检查端点配置
- JVM 参数优化

### 后端:Python (FastAPI/Django/Flask)
- 多阶段 Dockerfile(builder + slim 运行)
- uvicorn(FastAPI) / gunicorn(Django) 入口
- 依赖缓存优化

### 后端:Node.js (Express/Nest.js)
- 多阶段 Dockerfile(build + node 运行)
- pnpm/yarn/npm 支持
- 生产依赖优化

### 后端:Go
- 多阶段 Dockerfile(编译 + scratch/alpine)
- 静态编译
- 最小镜像体积

## 安全与性能最佳实践

| 实践 | 实现方式 |
|------|----------|
| **非root用户** | 创建并使用 appuser (UID 1001) |
| **最小镜像** | Alpine/slim 变体 |
| **多阶段构建** | 构建工具不进入运行镜像 |
| **无密钥硬编码** | 使用环境变量 |
| **健康检查** | HEALTHCHECK 指令 |
| **版本锁定** | 固定基础镜像版本 |
| **层缓存优化** | 先复制依赖文件,后复制源码 |
| **BuildKit缓存** | pip/npm 使用 `--mount=type=cache` |

## 质量检查清单

- [ ] `docker-compose config` 验证无错误
- [ ] 所有基础镜像使用固定版本(非 `latest`)
- [ ] 非 root 用户已配置
- [ ] 所有服务含健康检查
- [ ] .dockerignore 排除敏感文件
- [ ] 无硬编码密钥或密码

如何安装此技能?

访问技能市场,点击「安装」按钮,按提示将技能包放入 AI 编程助手的 skills 目录即可。

浏览技能市场

支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手