Контейнер разработки 'функции' Набор простых и многоразовых функций. Быстро добавьте язык/инструмент/CLI в контейнер для разработки. |
«Функции»-это автономные единицы кода установки и конфигурации контейнера разработки. Особенности предназначены для установки на широком диапазоне базовых контейнеров.
Отсутствует CLI или язык в вашем идеальном изображении контейнера? Добавьте соответствующую функцию в свойство features
devcontainer.json
. Инструмент, поддерживающий спецификацию контейнера Dev, требуется для создания контейнера для разработки.
Вы можете узнать о функциях на intainers.dev, который является веб -сайтом для спецификации контейнеров Dev.
Чтобы ссылаться на функцию из этого репозитория, добавьте желаемые функции в devcontainer.json
. Каждая функция имеет README.md
, который показывает, как ссылаться на функцию и какие параметры доступны для этой функции.
Пример ниже устанавливает go
и docker-in-docker
объявленное в каталоге ./src
этого репозитория.
Посмотрите на поддержанные варианты Readme's Readme.
"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
}
}
The :latest
версия добавляется неявно, если они опущены. Чтобы прикрепить к конкретной версии пакета (пример), добавьте ее к концу функции. Особенности следуют семантическим соглашениям об управлении версией, поэтому вы можете прикрепить к основной версии :1
, второстепенная версия :1.0
или патч версия :1.0.0
, указав соответствующий этикетку.
"features" : {
"ghcr.io/devcontainers/features/go:1.0.0" : {
"version" : "1.18"
}
}
Справочная реализация DevContainer CLI (или инструмент для поддержки) может использоваться для создания функций Dev 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. Спецификация распространения функций описывает шаблон для членов сообщества и организаций для самоотверженных функций в репозиториях, которые они контролируют.
Шаблон Repo devcontainers/feature-template
и GitHub Action доступны, чтобы помочь самоуничтоженным функциям.
Мы стремимся услышать ваши отзывы о самоуничтожении! Пожалуйста, предоставьте комментарии и отзывы о спецификации № 70.
Этот репозиторий примет вклад улучшения и исправления ошибок, связанных с текущим набором поддерживаемых функций.
? Вы можете прочитать больше о том, как внести свой вклад в CONTRIBUTING.md
. ❤