你项目里缺个 .devcontainer 目录对吧。这个 skill 能帮你搞定。
它看你项目用什么语言、什么框架、用什么包管理器、用不用数据库,然后生成对应的配置文件。
- 不用记
mcr.microsoft.com/devcontainers/xxx那些镜像名 - 不用纠结
postCreateCommand到底写什么 - 不会忘记加
.dockerignore(然后 build context 从 2MB 变成 500MB) - 默认非 root 用户,不需要事后补安全措施
- node_modules 不会和宿主机打架
| 语言 | 镜像策略 | 需自定义 Dockerfile 的场景 |
|---|---|---|
| Python | 预构建镜像 | 需要系统级 C 库、OpenCV、TensorFlow 等 |
| Node.js / TypeScript | 预构建镜像 | 需要 native 模块编译 |
| Rust | 预构建镜像 | 通常不需要,镜像自带 LLDB |
| Go | 预构建镜像 | 通常不需要 |
| Java | 预构建镜像 | 需要特定 JDK 版本以外的系统工具 |
| .NET / C# | 预构建镜像 | 通常不需要 |
| Ruby | 预构建镜像 | 需要系统级 gem 依赖 |
| PHP | 预构建镜像 | 需要额外扩展(exif、gd 等) |
| C/C++ | 预构建镜像 | 如果需要特定版本的编译工具链 |
| Kotlin | Java 预构建镜像 | 需要额外系统工具或特定 Gradle 环境 |
| Scala | Java 预构建镜像 | 需要额外系统工具或特定 sbt 环境 |
| Swift | 自定义 Dockerfile | 为官方 Swift 镜像创建非 root 开发用户 |
| Deno | Node.js 镜像 + Deno feature | 需要额外系统级依赖 |
检测到项目用了 PostgreSQL、MySQL、Redis 或 MongoDB 时,会自动生成 docker-compose.yml 带上这些服务。
将仓库克隆到 agent skills 目录:
git clone https://github.com/GlariaLuminous/setup-devcontainer-skill.git ~/.agents/skills/setup-devcontainer-skillWindows PowerShell:
git clone https://github.com/GlariaLuminous/setup-devcontainer-skill.git "$HOME\.agents\skills\setup-devcontainer-skill"更新已安装的 skill:
git -C ~/.agents/skills/setup-devcontainer-skill pull --ff-only安装或更新后,重新启动 agent 客户端以加载最新内容。
cd 你的项目目录
opencode
> 给我的项目配一个 dev containerskill 会自动检测项目结构,问你要不要加数据库,然后生成文件。
.devcontainer/
├── devcontainer.json # 主要配置
├── Dockerfile # 只有需要自定义镜像时才生成
└── docker-compose.yml # 只有用到数据库时才生成
.dockerignore # 防止构建上下文过大
参考模板在 templates/ 目录下,每种语言一个独立的 jsonc 文件。Swift 模板需要同时复制 Swift.Dockerfile,以便在官方镜像中创建非 root 开发用户。模板中的安装命令会根据项目锁文件替换,例如 npm 项目优先使用 npm ci,uv 项目使用 uv sync --frozen。
bash tests/validate-templates.sh验证脚本会检查 JSON 模板、Compose 路径、安全默认值和包管理器占位符。仓库 CI 会在每次 push 和 PR 时执行同一套检查。
这个项目不是它们官方的。"DevContainer" 是 containers.dev 上的开放规范。
MIT