Conteneur de développement 'fonctionnalités' Un ensemble de fonctionnalités simples et réutilisables. Ajoutez rapidement une langue / outil / CLI à un conteneur de développement. |
Les «fonctionnalités» sont des unités autonomes du code d'installation et de la configuration du conteneur de développement. Les fonctionnalités sont conçues pour installer au sommet d'une large gamme d'images de conteneurs de base.
Vous manquez une CLI ou une langue dans votre image de conteneur autrement parfaite ? Ajoutez la fonctionnalité pertinente à la propriété features
d'un devcontainer.json
. Un outil prenant en charge la spécification du conteneur Dev est nécessaire pour créer un conteneur de développement.
Vous pouvez en apprendre davantage sur les fonctionnalités de conteneurs.dev, qui est le site Web de la spécification du conteneur Dev.
Pour référencer une fonctionnalité de ce référentiel, ajoutez les fonctionnalités souhaitées à un devcontainer.json
. Chaque fonctionnalité dispose d'un README.md
qui montre comment faire référence à la fonctionnalité et quelles options sont disponibles pour cette fonctionnalité.
L'exemple ci-dessous installe le go
et docker-in-docker
déclaré dans le répertoire ./src
de ce référentiel.
Voir la lecture de la fonctionnalité pertinente pour les options prises en charge.
"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
}
}
L'annotation :latest
version est ajoutée implicitement si elle est omise. Pour épingler à une version de package spécifique (exemple), ajoutez-le à la fin de la fonctionnalité. Les fonctionnalités suivent les conventions de version sémantique, afin que vous puissiez épingler une version majeure :1
, version mineure :1.0
ou Patch version :1.0.0
en spécifiant l'étiquette appropriée.
"features" : {
"ghcr.io/devcontainers/features/go:1.0.0" : {
"version" : "1.18"
}
}
L'implémentation de référence CLI DevContainer (ou un outil de support) peut être utilisée pour créer des fonctionnalités de déclaration de déni de développement d'un projet.
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
- Une collection de sous-dossiers, chacun déclarant une fonctionnalité. Chaque sous-dossier contient au moins un devcontainer-feature.json
et un script install.sh
.test
- Miroration src
, un dossier par fonction avec au moins un script test.sh
Le devcontainer
CLI exécutera ces tests dans CI. La spécification de distribution des fonctionnalités décrit un modèle pour les membres de la communauté et les organisations aux fonctionnalités de l'auto-auteur dans les référentiels qu'ils contrôlent.
Un modèle Repo devcontainers/feature-template
et GitHub Action sont disponibles pour aider les fonctionnalités auto-écrites bootstrap.
Nous sommes impatients d'entendre vos commentaires sur l'auto-autorité! Veuillez fournir des commentaires et des commentaires sur le problème des spécifications # 70.
Ce référentiel acceptera des contributions d'amélioration et de correction de bogues liées à l'ensemble actuel des fonctionnalités maintenues.
? Vous pouvez en savoir plus sur la façon de contribuer à CONTRIBUTING.md
. ❤️