mcpField
D
devcontainer-setup

devcontainer-setup

github.com/shipshitdev开发38178 次安装今天更新
代码仓库

关于 devcontainer-setup

为软件项目生成开发容器配置的技能,面向需要容器化开发环境的项目维护者。它先收集运行时、包管理器、端口和挂载等要求,再创建 `.devcontainer/` 配置文件与启动说明。

主要功能

  1. 01询问运行时和开发环境需求
  2. 02生成五类开发容器配置文件
  3. 03配置端口、挂载和扩展
  4. 04按包管理器设置依赖安装
  5. 05覆盖前及扩大范围前要求确认

适用场景

  1. 01为新项目创建开发容器环境
  2. 02为单体仓库配置共享目录挂载
  3. 03按项目需求设置端口与开发工具

安装

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

$npx skills add https://github.com/shipshitdev/skills --skill devcontainer-setup

安装后在 Claude Code 中输入/devcontainer-setup确认已加载。

附带文件plugin.jsonreferences/templates.md

详细介绍

Devcontainer 设置技能

授权范围

仅在用户请求和现有授权范围内操作;加载此技能不会授予新的权限。对于仅要求报告的请求,只提供报告;遵循调用者指定的目标、主机、提供商和成本限制;扩大范围前先询问,并将这些限制传达给委派对象。

约定

输入:

  • 项目运行时、现有容器配置以及所请求的开发环境设置
  • 已批准的目录挂载和可选工具

输出:

  • Dev Container 配置和启动说明

创建/修改:

  • 授权设置范围内的 .devcontainer/ 文件

外部副作用:

  • 仅在用户请求时拉取镜像、安装软件包或启动容器

需要确认:

  • 覆盖现有配置,或挂载所选项目之外的目录之前
  • 添加工具或启动已批准设置范围之外的容器之前

委派给:

  • docker-expert 处理容器配置细节

信息收集

创建 devcontainer 之前,向用户收集以下信息:

必需信息
  1. 项目名称:项目/容器名称是什么?(例如:my-project、shipshitdev-api)

  2. 基础镜像:此项目使用什么运行时?

    • oven/bun:1.3.5 — Bun 项目(推荐,速度快)
    • node:20-slim — Node.js 项目
    • node:20 — 含更多工具的 Node.js
    • 自定义镜像路径
  3. 包管理器:使用哪个包管理器?

    • bun — Bun(Bun 项目的默认选项)
    • npm — npm
    • pnpm — pnpm
    • yarn — Yarn
  4. 端口:需要转发哪些端口?(用逗号分隔,例如:3000, 3001, 5432)

  5. 端口标签(可选):每个端口的标签(例如:3000=Web, 5432=Postgres)

  6. 父目录挂载:是否应挂载父目录,以便跨仓库访问?

    • 是 — 将父目录挂载为 /workspace(适用于 monorepo 和共享库)
    • 否 — 仅挂载此项目
  7. Claude Code 支持:是否包含 Claude Code CLI 设置?

    • 是 — 安装 Claude Code,并修复符号链接以便在容器中使用
    • 否 — 跳过 Claude Code 设置
  8. VS Code 扩展(可选):要安装的其他扩展(用逗号分隔的扩展 ID)

  9. Monorepo 结构(如适用):

    • 这是包含嵌套 package.json 文件的 monorepo 吗?
    • 应用/软件包目录是什么?(例如:apps/*, packages/*)

要创建的文件结构

.devcontainer/
├── devcontainer.json      # VS Code dev container config
├── Dockerfile             # Container image definition
├── docker-compose.yml     # Docker compose config
├── setup.sh               # Post-create setup script
└── README.md              # Documentation

模板

根据收集的信息生成全部五个文件:

  • devcontainer.json — 构建配置、挂载、功能、VS Code 扩展/设置、转发端口、postCreateCommand
  • Dockerfile — 基础镜像、工作目录、依赖安装(适配 monorepo)、开发工具、公开端口
  • docker-compose.yml — 服务定义、卷(父目录挂载和 node_modules 缓存)、端口、开发命令
  • setup.sh — 安装依赖;如果用户请求 Claude Code 支持,还会修复主机到容器的 Claude 配置符号链接,并打印 API 密钥设置说明
  • README.md — 快速开始、挂载/端口表、目录结构、故障排除

每个文件的完整填空文本见 references/templates.md({{PLACEHOLDER}} 值取自上述收集的信息)。

包管理器参考

包管理器锁定文件安装命令开发命令
bunbun.lock*bun install --frozen-lockfilebun run dev
npmpackage-lock.jsonnpm cinpm run dev
pnpmpnpm-lock.yamlpnpm install --frozen-lockfilepnpm run dev
yarnyarn.lockyarn install --frozen-lockfileyarn dev

实施步骤

  1. 使用 AskUserQuestion 向用户询问上述必需信息
  2. 创建 .devcontainer 目录
  3. 根据收集到的配置生成各个文件
  4. 将 setup.sh 设为可执行文件
  5. 总结创建的内容以及使用方法

使用示例

用户:“为我的 Next.js 项目配置 devcontainer”

  1. 收集信息:项目使用 Bun,端口为 3000,需要支持 Claude Code
  2. 在 .devcontainer/ 中创建全部 5 个文件
  3. 输出:“已创建 devcontainer 配置。请在 VS Code 中打开,然后点击‘在容器中重新打开’。”

评论

支持 Markdown