📦 Devcontainer — 开发容器
v1.0.0Validator 在 VS Code Dev Container 中校验 devcontainer.json 文件的语法、结构、features、端口、生命周期脚本、自定义项及安全最佳实践。
详细分析 ▾
运行时依赖
版本
- 初始版本:验证 VS Code Dev Containers、GitHub Codespaces 与 DevPod 的 devcontainer.json 文件 - 检查结构、features、端口/网络、生命周期脚本、自定义项及最佳实践 - 强制执行 24+ 条规则,覆盖常见错误与安全隐患,每类规则清晰分类 - 支持 text、JSON 及单行摘要输出格式,可自定义严重级别过滤 - 提供专用命令:完整验证、仅结构、仅 features、仅安全 - 退出码区分成功、发现错误、文件/解析异常 - 仅需 Python 3.8+,无外部依赖
安装命令
点击复制技能文档
校验 VS Code Dev Containers、GitHub Codespaces 与 DevPod 的 devcontainer.json 文件。
功能
检查devcontainer.json(支持 JSONC 注释与尾随逗号)在六个方面的常见错误:
- 结构 — 必填字段、image/dockerFile/dockerComposeFile 冲突、未知键
- Features — OCI 引用格式、重复项、空选项
- 端口与网络 — forwardPorts 格式、端口范围、portsAttributes 一致性
- 生命周期脚本 — 命令类型、空命令、shell 注入模式
- 自定义 — VS Code 扩展格式、设置类型、扩展 ID 校验
- 最佳实践 — remoteUser、privileged 模式、workspaceFolder、危险 capabilities
规则(24+)
| 类别 | 规则 | 示例 | |------|------|------| | 结构(6) | 无效 JSONC 语法、缺失镜像源、未知顶级键、空 name、image+dockerFile 冲突、dockerFile+compose 冲突 | 同时设置"image": "...", "dockerFile": "..." |
| Features(4) | 无效 features 格式、feature ID 非有效 OCI 引用、空 feature 选项、重复 features | "features": ["go"](应为对象) |
| 端口与网络(4) | forwardPorts 非数组、无效端口号、端口越界、portsAttributes 引用未列出端口 | "forwardPorts": [99999] |
| 生命周期脚本(4) | 无效命令类型、空命令、shell 注入模式、onCreateCommand 使用提示 | "postCreateCommand": "" |
| 自定义(3) | extensions 非字符串数组、无效扩展 ID 格式、settings 非对象 | "extensions": [123] |
| 最佳实践(3+) | 缺失 remoteUser(root 警告)、privileged: true、缺失 workspaceFolder、危险 capAdd 项 | "capAdd": ["SYS_ADMIN"] | 输出格式
- text — 人类可读,带严重性标签([E] [W] [I])
- json — 结构化,含统计摘要
- summary — 单行 PASS/WARN/FAIL
退出码
0— 无错误(允许警告/信息)1— 发现错误(或--strict下任何 issue)2— 文件未找到或解析错误
命令
validate
全规则校验。 ``bash
python3 scripts/devcontainer_validator.py validate devcontainer.json
python3 scripts/devcontainer_validator.py validate --format json .devcontainer/devcontainer.json
python3 scripts/devcontainer_validator.py validate --strict devcontainer.json
` structure
仅校验结构规则(必填字段、冲突、未知键)。
`bash
python3 scripts/devcontainer_validator.py structure devcontainer.json
` features
仅校验 features 段。
`bash
python3 scripts/devcontainer_validator.py features devcontainer.json
` security
仅校验安全相关规则(privileged、capAdd、shell 注入、remoteUser)。
`bash
python3 scripts/devcontainer_validator.py security --strict devcontainer.json
` 选项
| 选项 | 取值 | 默认 | 说明 |
|------|------|------|------|
| --format | text, json, summary | text | 输出格式 |
| --min-severity | error, warning, info | info | 最低严重性过滤 |
| --strict | 标记 | 关 | 任何 issue 即退出 1 | 依赖
- Python 3.8+(纯标准库,零第三方依赖)
示例
`bash
# 快速检查
python3 scripts/devcontainer_validator.py validate devcontainer.json # CI 流水线
python3 scripts/devcontainer_validator.py validate --strict --format summary devcontainer.json
# 仅安全审计
python3 scripts/devcontainer_validator.py security --format json devcontainer.json
# 过滤噪音
python3 scripts/devcontainer_validator.py validate --min-severity warning devcontainer.json
``