본문으로 건너뛰기
cccskills
무료GitHub에 공개

devcontainers

Provides expert guidance on Development Containers (devcontainers) — creating, configuring, and optimising containerised development environments using the Dev Container Specification. This skill should be used when users ask about devcontainer.json, .devcontainer setup, Dev Container Features or Templates, pre-building images, multi-container workflows, Docker-in-Docker, cloud development environments (Codespaces, DevPod), or troubleshooting container performance and permission issues.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구DockerKubernetes
설치 방법 보기

포함된 파일(6)

  • SKILL.md7.7 KB
  • references/advanced-config.md9.0 KB
  • references/core-concepts.md8.8 KB
  • references/features-templates.md8.7 KB
  • references/performance-security.md10.2 KB
  • references/troubleshooting.md7.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Dev Containers Skill

Expert guidance on creating, configuring, and optimising containerised development environments using the Dev Container Specification. Covers devcontainer.json authoring, Features, Templates, performance, security, multi-container setups, and cloud environments.

Quick Reference Table

TaskLoad ResourceKey Concepts
Create or configure a devcontainer.jsonreferences/core-concepts.mdimage, build, features, lifecycle hooks, customizations
Add tools/languages to a containerreferences/features-templates.mdFeatures, version pinning, installsAfter, Templates
Set up multi-container or Docker-in-Dockerreferences/advanced-config.mddockerComposeFile, DinD, DooD, Kubernetes, service
Improve build/startup speedreferences/performance-security.mdlayer caching, named volumes, pre-built images, Virtio-fs
Harden container security or manage secretsreferences/performance-security.mdremoteUser, UID mapping, SSH forwarding, secrets
Debug slow mounts, permission errors, credential issuesreferences/troubleshooting.mdUID/GID, bind mounts, SSH agent, postCreateCommand
Integrate with Codespaces or DevPodreferences/advanced-config.mdprebuilds, providers, SSH, cloud residency

Orchestration Protocol

Phase 1 — Classify the Task

Identify which category the user's request falls into:

  • Configuration — writing or editing devcontainer.json, Dockerfiles, Compose files
  • Tooling — adding Features, authoring custom Features, or using Templates
  • Advanced — multi-container, DinD/DooD, Kubernetes, cloud environments
  • Optimisation — caching, pre-built images, named volumes, disk I/O
  • Security — non-root users, UID mapping, secrets, hardened images
  • Troubleshooting — permission errors, slow builds, SSH/GPG credential issues

Phase 2 — Load the Right Resource

Load the resource indicated in the Quick Reference Table. For complex tasks spanning multiple areas (e.g. "set up a secure multi-container environment with fast builds"), load both relevant files.

Phase 3 — Execute

Apply the guidance from the loaded resource. Use concrete examples from the resource files. For configuration tasks, produce a complete, commented devcontainer.json snippet.

Common Task Workflows

Workflow 1: Create a New Dev Container from Scratch

  1. Load references/core-concepts.md for the full property reference
  2. Choose orchestration method: image (simplest), build.dockerfile, or dockerComposeFile
  3. Add features for tools (Node.js, Python, Git, Docker CLI, etc.)
  4. Set remoteUser to a non-root user for security
  5. Add customizations.vscode.extensions and settings for IDE consistency
  6. Add postCreateCommand to install dependencies automatically
  7. Add forwardPorts for any app ports
{
  "name": "My Project",
  "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
  "features": {
    "ghcr.io/devcontainers/features/node:1": { "version": "20" },
    "ghcr.io/devcontainers/features/git:1": {}
  },
  "customizations": {
    "vscode": {
      "extensions": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"],
      "settings": { "editor.formatOnSave": true }
    }
  },
  "postCreateCommand": "npm install",
  "forwardPorts": [3000],
  "remoteUser": "node"
}

Workflow 2: Add a Tool via Features

  1. Load references/features-templates.md
  2. Browse the official registry or GitHub Container Registry
  3. Add the feature with a pinned version to devcontainer.json
  4. Use overrideFeatureInstallOrder if ordering matters

Workflow 3: Multi-Container Setup with Docker Compose

  1. Load references/advanced-config.md
  2. Create docker-compose.yml for services (app, database, cache)
  3. Create docker-compose.dev.yml for development overrides (source mounts, debug ports)
  4. Set dockerComposeFile to both files in devcontainer.json
  5. Set service to the container the IDE should attach to
  6. Set shutdownAction: "none" to keep services running when IDE closes

Workflow 4: Speed Up Dev Container Builds

  1. Load references/performance-security.md
  2. Order Dockerfile instructions from least-changed to most-changed
  3. Use RUN --mount=type=cache for package managers
  4. Use named volumes for node_modules / heavy dependency directories
  5. Pre-build and push image in CI; reference the pre-built image in devcontainer.json

Workflow 5: Troubleshoot a Permission or Credential Issue

  1. Load references/troubleshooting.md
  2. For UID mismatch: ensure updateRemoteUserUID: true (default on Linux)
  3. For SSH: ensure local SSH agent is running; the extension auto-forwards it
  4. For Git inside container: use SSH agent forwarding; do not copy private keys

Resource Summaries

FileContentsLines
references/core-concepts.mdFull devcontainer.json property reference, lifecycle hooks, location precedence~280
references/features-templates.mdConsuming and authoring Features, Templates distribution, version pinning~260
references/advanced-config.mdMulti-container, Docker-in-Docker/from-Docker, Kubernetes, Codespaces, DevPod~280
references/performance-security.mdLayer caching, named volumes, pre-built images, non-root users, secrets~270
references/troubleshooting.mdPermission errors, slow I/O, SSH/GPG credentials, lifecycle script issues~200

Best Practices

  • Version-pin everything — pin Features (feature:1) and base images (python:3.12) for reproducibility
  • Non-root by default — always set remoteUser to a non-root user; use updateRemoteUserUID: true on Linux
  • Automate setup — use postCreateCommand to install dependencies so the environment is immediately usable
  • Don't modify production Compose — use a docker-compose.dev.yml override for dev-specific additions
  • Pre-build images in CI — reduces startup from minutes to seconds; embed metadata in image labels
  • Never bake secrets into images — use SSH agent forwarding, BuildKit secret mounts, or .env files (git-ignored)
  • Named volumes for heavy directories — on macOS/Windows, mount node_modules etc. into named volumes for native I/O speed

External References

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Primary accessibility skill for VS Code. REQUIRED for new feature and contribution work, and also applies to updates of existing UI. Covers accessibility help dialogs, accessible views, verbosity settings, signals, ARIA announcements, keyboard navigation, and ARIA labels/roles.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jcasnellie69/homelab-config22026년 10월 16일 업데이트

Use this skill when the user explicitly asks to map, document, or onboard into an existing codebase. Trigger for prompts like "map this codebase", "document this architecture", "onboard me to this repo", or "create codebase docs". Do not trigger for routine feature implementation, bug fixes, or narrow code edits unless the user asks for repository-level discovery.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jcasnellie69/homelab-config22026년 10월 16일 업데이트

Act on user feedback attached to the current session. Use when the user submits feedback on the session's changes via the Submit Feedback button.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jcasnellie69/homelab-config22026년 10월 16일 업데이트

Add educational comments to the file specified, or prompt asking for file to comment if one is not provided.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jcasnellie69/homelab-config22026년 10월 16일 업데이트

Use when adding, modifying, or reviewing VS Code configuration policies. Covers the full policy lifecycle from registration to export to platform-specific artifacts. Run on ANY change that adds a `policy:` field to a configuration property.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jcasnellie69/homelab-config22026년 10월 16일 업데이트

Patterns and techniques for adding governance, safety, and trust controls to AI agent systems. Use this skill when: - Building AI agents that call external tools (APIs, databases, file systems) - Implementing policy-based access controls for agent tool usage - Adding semantic intent classification to detect dangerous prompts - Creating trust scoring systems for multi-agent workflows - Building audit trails for agent actions and decisions - Enforcing rate limits, content filters, or tool restrictions on agents - Working with any agent framework (PydanticAI, CrewAI, OpenAI Agents, LangChain, AutoGen)

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jcasnellie69/homelab-config22026년 10월 16일 업데이트

jcasnellie69의 스킬 모두 보기

이 스킬의 문제 신고