개발 컨테이너 '기능' 단순하고 재사용 가능한 기능 세트. 개발 컨테이너에 언어/도구/CLI를 신속하게 추가하십시오. |
'기능'은 자체 포함 된 설치 코드 및 개발 컨테이너 구성 단위입니다. 기능은 광범위한 기본 컨테이너 이미지 위에 설치하도록 설계되었습니다.
다른 완벽한 컨테이너 이미지에 CLI 또는 언어가 없습니까? devcontainer.json
의 features
속성에 관련 기능을 추가하십시오. 개발 컨테이너를 구축하려면 Dev 컨테이너 사양을 지원하는 도구가 필요합니다.
Dev 컨테이너 사양의 웹 사이트 인 Containers.dev에서 기능에 대해 배울 수 있습니다.
이 저장소의 기능을 참조하려면 원하는 기능을 devcontainer.json
에 추가하십시오. 각 기능에는 README.md
가있어 기능을 참조하는 방법과 해당 기능에 사용할 수있는 옵션이 있습니다.
아래의 예는이 저장소의 ./src
디렉토리에 선언 된 go
및 docker-in-docker
설치합니다.
지원되는 옵션은 관련 기능의 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
}
}
: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
스크립트가있는 폴더 폴더 인 SRC 미러링 src
. devcontainer
CLI는 CI에서 이러한 테스트를 실행합니다. 기능 배포 사양은 커뮤니티 회원 및 조직이 제어하는 저장소의 자체 제작 기능에 대한 패턴을 간략하게 설명합니다.
템플릿 Repo devcontainers/feature-template
및 GitHub 액션을 사용하여 자체 저술 된 기능을 도울 수 있습니다.
우리는 자기 승인에 대한 귀하의 의견을 듣고 싶어합니다! 사양 문제 #70에 대한 의견과 피드백을 제공하십시오.
이 저장소는 현재 유지 관리 된 기능 세트와 관련된 개선 및 버그 수정 기여를 수락합니다.
? CONTRIBUTING.md
에 기여하는 방법에 대한 자세한 내용을 읽을 수 있습니다 .md. ❤️