TapTap 团队的 DevContainer Features 集合,提供标准化的开发环境配置。这个 monorepo 包含多个可复用的 features,用于在开发容器中快速搭建一致的开发环境。
配置组织级 Git 设置,包括:
- 安装最新版 Git(支持 PPA)
- 配置标准化的系统级 gitconfig
- 设置统一的 gitignore 规则
- 自动安装 git-lfs
让用户方便 bootstrap 自己的 dotfiles
安装和配置 delta 作为 Git 的 diff 工具
.
├── src/ # Features 源代码
├── test/ # 测试文件
└── .github/
└── workflows/ # CI/CD 工作流
在你的项目 .devcontainer.json 中添加需要的 features:
{
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/taptap/features/git-config": {
"version": "latest",
"ppa": true
},
"ghcr.io/taptap/features/dotfiles": {},
"ghcr.io/taptap/features/git-delta": {}
}
}-
安装 devcontainer CLI:
bun add -g @devcontainers/cli
-
测试单个 feature:
devcontainer features test --features src/git-config -
测试所有 features:
devcontainer features test --features src -
运行特定测试场景:
devcontainer features test --features src/git-config --skip-autogenerated
Features 会自动发布到 GitHub Container Registry:
# 手动发布(需要适当的权限)
devcontainer features publish src --namespace ghcr.io/taptap/features- 在
src/下创建新目录 - 创建必需文件:
devcontainer-feature.json- Feature 元数据install.sh- 安装脚本(需要可执行权限)
- 在
test/下创建对应的测试目录 - 编写测试脚本和场景
- 每个 feature 必须有对应的测试
- 测试应覆盖主要的 Linux 发行版(Ubuntu、Debian、Alpine)
- 使用
dev-container-features-test-lib进行断言
所有 PR 会自动运行测试,合并到 main 分支后会自动发布到 registry。
欢迎提交 PR!请确保:
- 新 feature 有完整的测试覆盖
- 更新本 README 的 features 列表
- 遵循现有的代码风格和结构
MIT