Docker Compose 生成器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/docker-compose-generator-skill。
技能介绍
要解决什么问题
手写 docker-compose.yml 并不复杂,真正麻烦的是那些边角:服务之间的依赖顺序、网络别名、挂载卷的路径规范、端口映射与环境变量的一致性。小项目里靠记忆拼凑尚可应付,一旦服务数量增长到十几个,手动维护的代价会迅速上升。更头疼的是团队协作场景——每个人本地的配置稍有偏差,就会出现“在我机器上能跑”的经典问题。
另一个常见痛点是 Docker Engine 版本标签的混乱。不同发布版本的 tag 命名并不直观,例如 Docker Engine 29.0.0 对应的标签是 docker-v29.0.0,以 docker- 为前缀。在多版本并存或 CI 环境中,这类细节容易被忽略,导致构建结果不一致。
这个技能如何工作
该技能的核心能力是根据需求生成 docker-compose.yml 配置文件。它把用户对服务、网络、卷的诉求拆解成结构化字段,再输出一份可直接使用的 Compose 文件,而不是给出一段需要人工修补的模板。
关键步骤如下:
- 理解需求:接收服务列表、依赖关系和配置项,确认每个容器暴露的端口、挂载的卷和环境变量。
- 生成配置:按 Compose 规范输出
services、networks、volumes等顶层字段,保证 YAML 结构合法、字段可被docker compose up直接消费。 - 版本对齐:对涉及 Docker Engine 版本的场景,遵循上游以
docker-为前缀的标签规则(如docker-v29.0.0),避免使用过时或不存在的镜像 tag。
适用边界与注意点
需要明确的是,生成的配置并不包含业务逻辑层面的验证。技能不检查端口是否被宿主机占用,也不校验挂载路径在目标机器上是否存在。这些仍属于部署者的责任。
另外,本技能与 Moby 项目的关系需要厘清。Moby 是 Docker 发起的开源项目,旨在推进软件容器化;其组件最初来自 Docker 项目本身及社区的构建成果。生成结果面向的是 Compose 编排层,而不是 Moby 内部的构建细节。如果需求涉及自定义 Dockerfile 的多阶段构建或 moby 源码级定制,本技能不会覆盖那部分工作。
使用场景
- 团队服务数量增长到十几个,手动编写 `docker-compose.yml` 时反复调整依赖顺序和端口映射,希望一次生成结构合法且可直接使用的配置。
- 本地开发环境和 CI 流水线使用的 Docker Engine 版本不一致,导致构建结果不同,需要按 `docker-` 前缀的标签规则统一版本声明。
- 多服务联调时需要快速搭建临时环境,不想从零手写网络别名、挂载卷和环境变量,希望根据需求直接拿到一份可运行的 Compose 文件。
适合人员
- 后端开发工程师,在微服务联调时需要快速拉起多个容器并配置依赖关系,不想每次手动编写 Compose 文件。
- DevOps 工程师,负责维护 CI 构建环境,需要确保生成的 Compose 配置在开发机与流水线之间保持一致。
- 开源项目维护者,希望为项目提供一份可直接使用的 Compose 模板,减少贡献者的本地配置障碍。