用途:该技能面向可复现、可移植的开发环境搭建,适用于新成员快速上手、团队工具链标准化、消除“在我机器上能跑”问题、让 CI 环境与本地一致,以及创建临时可丢弃的开发环境。
主要能力: Dev Containers:通过 .devcontainer/devcontainer.json 定义镜像、features(如 Node、Python、docker-in-docker、kubectl-helm-minikube)、转发端口、postCreateCommand 与 VS Code 扩展;也支持 Docker Compose 多服务配置和自定义 Dockerfile。 Nix flakes:用 flake.nix 定义 devShells.default,列出语言与工具依赖,通过 shellHook 设置环境变量;使用 nix develop 进入环境,nix build、nix run 构建运行,nix flake lock/update 固定依赖。 Devbox:以更友好的方式封装 Nix,devbox init、devbox add 添加包,devbox shell 进入环境,devbox run 直接执行命令和脚本;devbox.json 可配置包、env、init_hook 和 scripts,并支持 devbox generate direnv 与 devbox generate dockerfile。
使用方式:安装 Devbox 使用 curl -fsSL https://get.jetify.com/devbox | bash;进入 Nix 环境使用 nix develop;CI 中可用 jetify-com/devbox-install-action 或 cachix/install-nix-action 配合 nix develop --command。配合 direnv 可在 cd 进入项目时自动激活环境。
适用场景:团队成员本地开发、GitHub Codespaces、CI/CD 流水线中复用同一套工具链版本。
限制与注意:资料未提及价格或收费信息。Dev Containers 学习曲线低、复现性良好,但构建较慢、离线支持有限;Nix flakes 复现性优秀、缓存后速度快、支持离线,但学习曲线高;Devbox 基于 Nix,兼顾低学习曲线与优秀复现性,支持 macOS/Linux。建议显式固定工具版本、提交 lock 文件、在 CI 缓存 Nix store,并让开发环境贴近生产版本。