| การพัฒนาคอนเทนเนอร์ 'คุณสมบัติ' ชุดคุณสมบัติที่เรียบง่ายและนำกลับมาใช้ใหม่ได้ เพิ่มภาษา/เครื่องมือ/CLI ลงในคอนเทนเนอร์การพัฒนาอย่างรวดเร็ว |
'คุณสมบัติ' เป็นหน่วยที่มีอยู่ในตัวเองของรหัสการติดตั้งและการกำหนดค่าคอนเทนเนอร์การพัฒนา คุณสมบัติได้รับการออกแบบมาเพื่อติดตั้งบนภาพคอนเทนเนอร์ฐานช่วงกว้าง
ขาด CLI หรือภาษาในภาพคอนเทนเนอร์ที่ สมบูรณ์แบบ ของคุณ? เพิ่มคุณสมบัติที่เกี่ยวข้องใน features คุณสมบัติของ devcontainer.json เครื่องมือที่สนับสนุนข้อกำหนดของ DEV Container เป็นสิ่งจำเป็นในการสร้างคอนเทนเนอร์การพัฒนา
คุณสามารถเรียนรู้เกี่ยวกับคุณสมบัติที่ containers.dev ซึ่งเป็นเว็บไซต์สำหรับข้อกำหนดของ DEV Container
ในการอ้างอิงคุณสมบัติจากที่เก็บนี้ให้เพิ่มคุณสมบัติที่ต้องการใน 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
}
} :latest จะถูกเพิ่มโดยปริยายหากละเว้น หากต้องการปักหมุดไปยังเวอร์ชันแพ็คเกจเฉพาะ (ตัวอย่าง) ต่อผนวกเข้ากับส่วนท้ายของฟีเจอร์ ฟีเจอร์ติดตามการประชุมเวอร์ชันความหมายดังนั้นคุณสามารถปักหมุดเป็นเวอร์ชันหลัก :1 , รุ่นรอง :1.0 หรือเวอร์ชันแพตช์ :1.0.0 โดยการระบุฉลากที่เหมาะสม
"features" : {
"ghcr.io/devcontainers/features/go:1.0.0" : {
"version" : "1.18"
}
}การใช้งานการอ้างอิง DEVCONTAINER CLI (หรือเครื่องมือสนับสนุน) สามารถใช้เพื่อสร้างฟีเจอร์ที่ประกาศของคอนเทนเนอร์ของโครงการ
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.shtest -Mirroring src , โฟลเดอร์ต่อคุณสมบัติที่มีสคริปต์ test.sh อย่างน้อย devcontainer CLI จะดำเนินการทดสอบเหล่านี้ใน CI ข้อมูลจำเพาะการกระจายคุณสมบัติสรุปรูปแบบสำหรับสมาชิกชุมชนและองค์กรเพื่อคุณลักษณะของผู้เขียนตนเองในที่เก็บข้อมูลที่พวกเขาควบคุม
เทมเพลต repo devcontainers/feature-template และการกระทำของ GitHub พร้อมใช้งานเพื่อช่วยคุณลักษณะการเขียนด้วยตนเอง bootstrap
เรากระตือรือร้นที่จะรับฟังความคิดเห็นของคุณเกี่ยวกับการเขียนตนเอง! โปรดให้ความคิดเห็นและข้อเสนอแนะเกี่ยวกับข้อมูลจำเพาะ #70
พื้นที่เก็บข้อมูลนี้จะยอมรับการปรับปรุงและการแก้ไขข้อผิดพลาดที่เกี่ยวข้องกับชุดคุณสมบัติการบำรุงรักษาปัจจุบัน
- คุณสามารถอ่านเพิ่มเติมเกี่ยวกับวิธีการมีส่วนร่วมใน CONTRIBUTING.md