mcpField
D
devcontainer

devcontainer

github.com/jwyniaCloud & DevOps179315 installsUpdated 35w ago
Repository

About devcontainer

devcontainer is a skill for diagnosing devcontainer and Docker development environment issues. It helps teams create reproducible, faster-starting setups and address differences between VS Code and GitHub Codespaces.

Key features

  1. 01Diagnose container startup and configuration issues
  2. 02Improve Dockerfile builds and caching
  3. 03Check VS Code and Codespaces differences
  4. 04Plan multi-service Docker Compose environments
  5. 05Use configuration analysis and validation scripts

Use cases

  1. 01Set up a devcontainer for a new project
  2. 02Investigate slow container startup
  3. 03Resolve behavior differences between VS Code and Codespaces
  4. 04Configure development environments with databases or caches

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/jwynia/agent-skills --skill devcontainer

After installing, type/devcontainerin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

assets/
devcontainer-compose.md
devcontainer-dockerfile.md
devcontainer-simple.md
references/
feature-catalog.md
scripts/
analyze-devcontainer.ts
scan-image.ts
validate-dockerfile.ts

Details

From the project README

Devcontainer Diagnostic

Diagnose devcontainer and Docker development environment problems. Help create reproducible, fast-starting development environments that work consistently across VS Code, GitHub Codespaces, and team members.

When to Use This Skill

Use this skill when:

  • Setting up a new devcontainer
  • Container startup is too slow
  • Configuration errors or conflicts
  • Different behavior in VS Code vs Codespaces
  • Multi-service development environment needed

Do NOT use this skill when:

  • Writing application code
  • Deploying to production
  • Configuring CI/CD pipelines

Core Principle

Development containers should provide instant productivity. Every configuration choice affects startup time, reproducibility, and team onboarding. Make these trade-offs explicit.

Diagnostic States

DV0: No Devcontainer Strategy

Symptoms: Manual setup, "check the README", works on one machine fails on others

Interventions:

  • Start with pre-built devcontainer base image
  • Use assets/devcontainer-simple.md template
DV1: Slow Container Startup

Symptoms: 5+ minute startup, heavy postCreateCommand, avoiding rebuilds

Key Questions:

  • How long does startup actually take?
  • What's in postCreateCommand?
  • Are you using prebuilds?

Interventions:

  • Move npm install/pip install to Dockerfile (cached)
  • Use mcr.microsoft.com/devcontainers/* base images
  • Configure prebuilds for team repos
  • Run scripts/analyze-devcontainer.ts
DV2: Configuration Problems

Symptoms: JSON errors, VS Code won't connect, features conflicting

Checklist:

  • devcontainer.json passes JSON validation
  • Using only ONE of: image, build.dockerfile, dockerComposeFile
  • Features are compatible and ordered correctly
  • Extensions use correct publisher.extension-name format
DV3: Environment Parity Issues

Symptoms: Works in VS Code, fails in Codespaces (or vice versa)

Common Issues:

IssueLocal VS CodeCodespaces
Docker socketUsually availableDocker-in-Docker needed
Secrets.env files workUse Codespaces secrets
File watchingNativeMay need polling
DV4: Multi-Service Complexity

Symptoms: Need database/cache/queue, services can't communicate

Interventions:

  • Use Docker Compose integration
  • Named volumes for persistence
  • Health checks for service readiness
  • Use assets/devcontainer-compose.md template
DV5: Dockerfile Issues

Symptoms: Build failures, huge images, no caching

Best Practices:

FROM mcr.microsoft.com/devcontainers/base:ubuntu

# Dependencies first (cached)
RUN apt-get update && apt-get install -y \
    build-essential && rm -rf /var/lib/apt/lists/*

# Copy deps then install (cached if deps unchanged)
COPY package*.json ./
RUN npm install

# Code last (changes frequently)
COPY . .
DV6: Devcontainer Validated

Indicators:

  • Startup under 2 minutes
  • Works in VS Code and Codespaces
  • New developers productive in 30 minutes

Available Scripts

ScriptPurposeUsage
analyze-devcontainer.tsFind issues and optimizationsdeno run --allow-read scripts/analyze-devcontainer.ts
validate-dockerfile.tsCheck Dockerfile best practicesdeno run --allow-read scripts/validate-dockerfile.ts
scan-image.tsVulnerability scanning (wraps Trivy)deno run --allow-run scripts/scan-image.ts [image]

Anti-Patterns

The Kitchen Sink

Installing every tool "just in case" - 10+ minute startups. Fix: Start minimal. Add only when needed.

The postCreateCommand Overload

Everything in postCreateCommand - runs every time. Fix: Move stable operations to Dockerfile.

The Snowflake Container

Manual changes inside running containers. Fix: ALL changes go in config files.

Templates

  • assets/devcontainer-simple.md - Basic single-container setup
  • assets/devcontainer-dockerfile.md - Custom Dockerfile approach
  • assets/devcontainer-compose.md - Multi-service setup

Related Skills

  • system-design - Multi-service architecture informs Compose config
  • pwa-development - Consistent environment for PWA toolchain

Comments

Markdown supported