Contenedor de desarrollo 'Características' Un conjunto de características simples y reutilizables. Agregue rápidamente un idioma/herramienta/CLI a un contenedor de desarrollo. |
Las 'características' son unidades autónomas de código de instalación y configuración de contenedores de desarrollo. Las características están diseñadas para instalar sobre una amplia gama de imágenes de contenedores base.
¿Se pierde un CLI o idioma en su imagen de contenedor perfecta ? Agregue la característica relevante a la propiedad features
de un devcontainer.json
. Se requiere una herramienta que admite la especificación del contenedor de desarrollo para construir un contenedor de desarrollo.
Puede aprender sobre las funciones en Containers.dev, que es el sitio web para la especificación de contenedores Dev.
Para hacer referencia a una característica de este repositorio, agregue las características deseadas a un devcontainer.json
. Cada función tiene un README.md
que muestra cómo hacer referencia a la función y qué opciones están disponibles para esa función.
El siguiente ejemplo instala el go
y docker-in-docker
declarado en el directorio ./src
de este repositorio.
Consulte el ReadMe de la función relevante para obtener opciones compatibles.
"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
versión de anotación se agrega implícitamente si se omite. Para sujetar a una versión de paquete específica (ejemplo), agregue al final de la función. Las características siguen las convenciones de versiones semánticas, por lo que puede fijar una versión principal :1
, versión menor :1.0
, o versión de parche :1.0.0
especificando la etiqueta apropiada.
"features" : {
"ghcr.io/devcontainers/features/go:1.0.0" : {
"version" : "1.18"
}
}
La implementación de referencia de DevContainer CLI (o una herramienta de soporte) se puede utilizar para construir las funciones de declaración de contenedores de desarrollo de un proyecto.
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
: una colección de subcarpetas, cada una declarando una característica. Cada subcarpeta contiene al menos un devcontainer-feature.json
y un script install.sh
.test
: reflejando src
, una carpeta por función con al menos un script test.sh
La CLI devcontainer
ejecutará estas pruebas en CI. La especificación de distribución de características describe un patrón para los miembros y organizaciones de la comunidad a las características de autocontrol en los repositorios que controlan.
Una plantilla de repose devcontainers/feature-template
y GitHub Action están disponibles para ayudar a las funciones de autorización propia.
¡Estamos ansiosos por escuchar sus comentarios sobre el auto-autorización! Proporcione comentarios y comentarios sobre el problema de las especificaciones #70.
Este repositorio aceptará contribuciones de mejora y corrección de errores relacionados con el conjunto actual de características mantenidas.
? Puede leer más sobre cómo contribuir en CONTRIBUTING.md
. ❤️