Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
markpitt avatar

Devcontainers

  • 18 installs
  • 22 repo stars
  • Updated February 19, 2026
  • markpitt/claude-skills

Helps with ai & agent building tasks.

About

devcontainers is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.

  • devcontainers
  • AI & Agent Building
  • AI-coding skill

Devcontainers by the numbers

  • 18 all-time installs (skills.sh)
  • Ranked #10,710 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/markpitt/claude-skills --skill devcontainers

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs18
repo stars22
Last updatedFebruary 19, 2026
Repositorymarkpitt/claude-skills

What it does

Helps with ai & agent building tasks.

Files

SKILL.mdMarkdownGitHub ↗

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

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.