features
1.0.0
开发容器“功能” 一组简单且可重复使用的功能。快速将语言/工具/CLI添加到开发容器中。 |
“功能”是安装代码和开发容器配置的独立单位。功能旨在安装大量的基本容器图像。
在原本完美的容器图像中缺少CLI或语言?将相关功能添加到devcontainer.json
的features
属性中。构建开发容器需要支持DEV容器规范的工具。
您可能会在container.dev上了解功能,该功能是DEV容器规范的网站。
要引用此存储库中的功能,请将所需功能添加到devcontainer.json
。每个功能都有一个README.md
,可显示如何引用该功能以及该功能可用的选项。
下面的示例安装了该存储库中的./src
目录中声明的go
和docker-in-docker
。
有关支持的选项,请参见相关功能的读数。
"name" : "my-project-devcontainer" ,
"image" : "mcr.microsoft.com/devcontainers/base:ubuntu" , // Any generic, debian-based image.
"features" : {
"ghcr.io/devcontainers/features/go:1" : {
"version" : "1.18"
} ,
"ghcr.io/devcontainers/features/docker-in-docker:1" : {
"version" : "latest" ,
"moby" : true
}
}
:latest
版本注释。要固定到特定的软件包版本(示例),请将其附加到功能的末尾。功能遵循语义版本惯例,因此您可以通过指定适当的标签来固定主要版本:1
,次要版本: :1.0
:1.0.0
。
"features" : {
"ghcr.io/devcontainers/features/go:1.0.0" : {
"version" : "1.18"
}
}
DevContainer CLI参考实现(或支持工具)可用于构建项目的Dev容器声明功能。
git clone < my-project-with-devcontainer >
devcontainer build --workspace-folder < path-to-my-project-with-devcontainer >
.
├── README.md
├── src
│ ├── dotnet
│ │ ├── devcontainer-feature.json
│ │ └── install.sh
│ ├── go
│ │ ├── devcontainer-feature.json
│ │ └── install.sh
| ├── ...
│ │ ├── devcontainer-feature.json
│ │ └── install.sh
├── test
│ ├── dotnet
│ │ └── test.sh
│ ├── go
| | ├── scenarios.json
| | ├── test_scenario_1.json
│ | └── test.sh
| ├── ...
│ │ └── test.sh
...
src
一个子文件夹的集合,每个都声明一个功能。每个子文件夹至少包含一个devcontainer-feature.json
和一个install.sh
脚本。test
- 镜像src
,一个至少一个test.sh
脚本的每一个文件夹。 devcontainer
CLI将在CI中执行这些测试。 该功能分布规范概述了社区成员和组织在他们控制的存储库中的自行人物功能的模式。
模板回购devcontainers/feature-template
和github动作可用于帮助引导自行创作的功能。
我们渴望听到您对自身人工的反馈!请提供有关规格问题#70的评论和反馈。
该存储库将接受与当前维护功能集有关的改进和错误修复贡献。
?您可以阅读有关如何在CONTRIBUTING.md
中贡献的更多信息。 ❤️