開発コンテナ「機能」 シンプルで再利用可能な機能のセット。言語/ツール/CLIを開発コンテナにすばやく追加します。 |
「機能」は、インストールコードと開発コンテナ構成の自己完結型ユニットです。機能は、広範囲のベースコンテナ画像の上にインストールするように設計されています。
それ以外の場合は完璧なコンテナ画像にCLIや言語がありませんか? devcontainer.json
のfeatures
プロパティに関連する機能を追加します。開発コンテナを構築するには、開発容器仕様をサポートするツールが必要です。
開発者の仕様のウェブサイトであるcontainers.devで機能について学ぶことができます。
このリポジトリから機能を参照するには、希望の機能をdevcontainer.json
に追加します。各機能には、機能を参照する方法とその機能に使用できるオプションを示すREADME.md
があります。
以下の例では、 go
とdocker-in-docker
このリポジトリの./src
ディレクトリで宣言されています。
サポートされているオプションについては、関連する機能の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コンテナを宣言する機能を構築できます。
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
- 少なくともtest.sh
スクリプトを備えたFolder-fitureをミラーリングするsrc
。 devcontainer
CLIは、CIでこれらのテストを実行します。 機能配信仕様は、コミュニティメンバーと組織が制御するリポジトリの自己著者機能に対するパターンの概要を示しています。
テンプレートレポンdevcontainers/feature-template
およびGitHubアクションを利用でき、自己承認の機能をブートストラップするのに役立ちます。
私たちは自己執筆に関するあなたのフィードバックを聞きたいと思っています! Spec Issue#70に関するコメントとフィードバックを提供してください。
このリポジトリは、現在の維持機能のセットに関連する改善とバグ修正の貢献を受け入れます。
? CONTRIBUTING.md
で貢献する方法の詳細を読むことができます。 ❤❤️