mcpField
D
devcontainer

devcontainer

github.com/jwynia云与 DevOps179315 次安装35 周前更新
代码仓库

关于 devcontainer

devcontainer 是用于诊断开发容器与 Docker 开发环境问题的技能,帮助团队构建可复现、启动迅速的环境,并处理 VS Code 与 GitHub Codespaces 间的差异。

主要功能

  1. 01诊断容器启动和配置问题
  2. 02优化 Dockerfile 构建与缓存
  3. 03检查 VS Code 与 Codespaces 环境差异
  4. 04规划 Docker Compose 多服务环境
  5. 05提供配置分析与验证脚本

适用场景

  1. 01为新项目建立开发容器
  2. 02排查容器启动缓慢
  3. 03修复 VS Code 与 Codespaces 行为不一致
  4. 04配置含数据库或缓存的开发环境

安装

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

$npx skills add https://github.com/jwynia/agent-skills --skill devcontainer

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

包含的文件

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

assets/
devcontainer-compose.md
devcontainer-dockerfile.md
devcontainer-simple.md
references/
feature-catalog.md
scripts/
analyze-devcontainer.ts
scan-image.ts
validate-dockerfile.ts

详细介绍

Devcontainer 诊断

诊断 devcontainer 和 Docker 开发环境问题。帮助创建可复现、快速启动的开发环境,确保其在 VS Code、GitHub Codespaces 和团队成员之间保持一致。

何时使用此技能

在以下情况下使用此技能:

  • 设置新的 devcontainer
  • 容器启动过慢
  • 配置错误或冲突
  • VS Code 与 Codespaces 中的行为不同
  • 需要多服务开发环境

在以下情况下不要使用此技能:

  • 编写应用代码
  • 部署到生产环境
  • 配置 CI/CD 流水线

核心原则

开发容器应能让人立即投入工作。每项配置选择都会影响启动时间、可复现性和团队成员上手速度。请明确说明这些权衡。

诊断状态

DV0:没有 Devcontainer 策略

症状: 手动设置、“查看 README”,在一台机器上能用,在其他机器上却不行

应对措施:

  • 从预构建的 devcontainer 基础映像开始
  • 使用 assets/devcontainer-simple.md 模板
DV1:容器启动缓慢

症状: 启动耗时 5 分钟以上,postCreateCommand 负担过重,避免重建

关键问题:

  • 实际启动需要多长时间?
  • postCreateCommand 中有哪些内容?
  • 是否在使用预构建?

应对措施:

  • 将 npm install/pip install 移至 Dockerfile(可缓存)
  • 使用 mcr.microsoft.com/devcontainers/* 基础映像
  • 为团队仓库配置预构建
  • 运行 scripts/analyze-devcontainer.ts
DV2:配置问题

症状: JSON 错误、VS Code 无法连接、功能冲突

检查清单:

  • devcontainer.json 通过 JSON 验证
  • 只使用以下选项之一:image、build.dockerfile、dockerComposeFile
  • 功能彼此兼容且顺序正确
  • 扩展采用正确的 publisher.extension-name 格式
DV3:环境一致性问题

症状: 在 VS Code 中能用,在 Codespaces 中失败(或反之)

常见问题:

问题本地 VS CodeCodespaces
Docker socket通常可用需要 Docker-in-Docker
密钥.env 文件可用使用 Codespaces 密钥
文件监视原生支持可能需要轮询
DV4:多服务复杂性

症状: 需要数据库/缓存/队列,服务之间无法通信

应对措施:

  • 使用 Docker Compose 集成
  • 使用命名卷进行持久化
  • 使用健康检查确认服务就绪
  • 使用 assets/devcontainer-compose.md 模板
DV5:Dockerfile 问题

症状: 构建失败、映像过大、没有缓存

最佳实践:

FROM mcr.microsoft.com/devcontainers/base:ubuntu

# Dependencies first (cached)
RUN apt-get update && apt-get install -y \
    build-essential && rm -rf /var/lib/apt/lists/*

# Copy deps then install (cached if deps unchanged)
COPY package*.json ./
RUN npm install

# Code last (changes frequently)
COPY . .
DV6:Devcontainer 已验证

指标:

  • 启动时间低于 2 分钟
  • 在 VS Code 和 Codespaces 中均可运行
  • 新开发者可在 30 分钟内投入工作

可用脚本

脚本用途用法
analyze-devcontainer.ts查找问题并进行优化deno run --allow-read scripts/analyze-devcontainer.ts
validate-dockerfile.ts检查 Dockerfile 最佳实践deno run --allow-read scripts/validate-dockerfile.ts
scan-image.ts漏洞扫描(封装 Trivy)deno run --allow-run scripts/scan-image.ts [image]

反模式

大杂烩容器

“以防万一”安装所有工具——启动需要 10 分钟以上。 修复方法: 从精简配置开始。只在需要时添加。

postCreateCommand 负担过重

所有操作都放在 postCreateCommand 中——每次都会运行。 修复方法: 将稳定的操作移至 Dockerfile。

特例容器

在运行中的容器内手动修改。 修复方法: 所有更改都写入配置文件。

模板

  • assets/devcontainer-simple.md - 基本的单容器设置
  • assets/devcontainer-dockerfile.md - 自定义 Dockerfile 方案
  • assets/devcontainer-compose.md - 多服务设置

相关技能

  • system-design - 多服务架构会影响 Compose 配置
  • pwa-development - 为 PWA 工具链提供一致的环境

评论

支持 Markdown