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中貢獻的更多信息。 ❤️