All skills
jwynia avatar

/devcontainer

@99a8797
by J Wyniajwynia/agent-skills160 stars
20

Diagnose devcontainer configuration problems and guide development environment setup. This skill should be used when the user asks to 'set up devcontainer', 'fix container startup', 'configure VS Code dev container', 'Codespaces setup', or has Docker development environment issues. Keywords: devcontainer, docker, VS Code, Codespaces, container, development environment, Dockerfile.

Use this Skill: https://skilld.dev/gh/jwynia/agent-skills/devcontainer

This session only. Nothing lands on disk.

referencesfeature-catalog.md

≈2k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Devcontainer Features Catalog

Features are pre-packaged tools and runtimes that can be added to any devcontainer. They install on top of any base image, making configuration modular and reusable.

Official Features Repository: https://github.com/devcontainers/features

How to Use Features

{
  "features": {
    "ghcr.io/devcontainers/features/node:1": {
      "version": "20"
    },
    "ghcr.io/devcontainers/features/git:1": {}
  }
}

Core Development Tools

Git

Essential for most development workflows.

"ghcr.io/devcontainers/features/git:1": {}

Options:

  • version: Git version (default: "latest")
  • ppa: Use PPA for latest version (default: true)

GitHub CLI

For GitHub operations from the command line.

"ghcr.io/devcontainers/features/github-cli:1": {}

Options:

  • version: CLI version (default: "latest")

Docker-in-Docker

Run Docker commands inside the devcontainer (for container development).

"ghcr.io/devcontainers/features/docker-in-docker:2": {
  "version": "latest",
  "moby": true
}

Options:

  • version: Docker version
  • moby: Use Moby (open source Docker, default: true)
  • dockerDashComposeVersion: Compose version

Note: May not work in all Codespaces configurations. Test thoroughly.

Docker-outside-of-Docker

Use host's Docker daemon (lighter than docker-in-docker).

"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}

Languages & Runtimes

Node.js

"ghcr.io/devcontainers/features/node:1": {
  "version": "20",
  "nodeGypDependencies": true
}

Options:

  • version: Node version ("lts", "20", "18", etc.)
  • nodeGypDependencies: Install build tools for native modules
  • nvmVersion: NVM version to install

Python

"ghcr.io/devcontainers/features/python:1": {
  "version": "3.11"
}

Options:

  • version: Python version
  • installTools: Install pip, pipx, etc. (default: true)
  • optimize: Optimize Python installation (default: false)

Go

"ghcr.io/devcontainers/features/go:1": {
  "version": "1.21"
}

Options:

  • version: Go version

Rust

"ghcr.io/devcontainers/features/rust:1": {
  "version": "latest",
  "profile": "default"
}

Options:

  • version: Rust version
  • profile: Rustup profile (minimal, default, complete)

Java

"ghcr.io/devcontainers/features/java:1": {
  "version": "17",
  "installMaven": true,
  "installGradle": true
}

Options:

  • version: Java version
  • installMaven: Install Maven
  • installGradle: Install Gradle
  • jdkDistro: JDK distribution (ms, default)

.NET

"ghcr.io/devcontainers/features/dotnet:2": {
  "version": "8.0"
}

Options:

  • version: .NET version
  • aspnetcore: Install ASP.NET Core runtime

PHP

"ghcr.io/devcontainers/features/php:1": {
  "version": "8.2",
  "installComposer": true
}

Options:

  • version: PHP version
  • installComposer: Install Composer

Ruby

"ghcr.io/devcontainers/features/ruby:1": {
  "version": "3.2"
}

Options:

  • version: Ruby version

Shell & Terminal

Oh My Zsh

"ghcr.io/devcontainers/features/omz:1": {
  "plugins": "git docker kubectl"
}

Options:

  • plugins: Space-separated plugin list
  • theme: Theme name (default: "robbyrussell")

Fish Shell

"ghcr.io/devcontainers/features/fish:1": {}

Starship Prompt

"ghcr.io/devcontainers/features/starship:1": {}

Cloud & Infrastructure

AWS CLI

"ghcr.io/devcontainers/features/aws-cli:1": {}

Azure CLI

"ghcr.io/devcontainers/features/azure-cli:1": {}

Google Cloud CLI

"ghcr.io/devcontainers/features/gcloud:1": {}

Terraform

"ghcr.io/devcontainers/features/terraform:1": {
  "version": "latest",
  "tflint": "latest"
}

Options:

  • version: Terraform version
  • tflint: TFLint version
  • terragrunt: Terragrunt version

Kubectl & Helm

"ghcr.io/devcontainers/features/kubectl-helm-minikube:1": {
  "version": "latest",
  "helm": "latest",
  "minikube": "latest"
}

Databases & Data Tools

PostgreSQL Client

"ghcr.io/devcontainers/features/postgresql-client:1": {}

MySQL Client

"ghcr.io/devcontainers/features/mysql-client:1": {}

Redis Client (redis-cli)

"ghcr.io/devcontainers/features/redis-cli:1": {}

MongoDB Shell

"ghcr.io/devcontainers/features/mongodb-community:1": {}

Utilities

jq (JSON processor)

"ghcr.io/devcontainers/features/jq:1": {}

yq (YAML processor)

"ghcr.io/devcontainers/features/yq:1": {}

HTTPie (HTTP client)

"ghcr.io/devcontainers/features/httpie:1": {}

Deno

"ghcr.io/anthropics/devcontainer-features/deno:1": {}

Community Features

Beyond official features, many community features exist:

Bun

"ghcr.io/shyim/devcontainers-features/bun:1": {}

pnpm

"ghcr.io/devcontainers-contrib/features/pnpm:2": {}

Yarn

"ghcr.io/devcontainers/features/yarn:1": {}

Biome (linter/formatter)

"ghcr.io/biomejs/devcontainer-features/biome:1": {}

Feature Configuration Patterns

Version Pinning

{
  "features": {
    "ghcr.io/devcontainers/features/node:1": {
      "version": "20.10.0"
    }
  }
}

Multiple Language Versions

{
  "features": {
    "ghcr.io/devcontainers/features/node:1": {
      "version": "20"
    },
    "ghcr.io/devcontainers/features/python:1": {
      "version": "3.11"
    }
  }
}

Override Install Order

{
  "features": {
    "ghcr.io/devcontainers/features/node:1": {},
    "ghcr.io/devcontainers/features/python:1": {}
  },
  "overrideFeatureInstallOrder": [
    "ghcr.io/devcontainers/features/python",
    "ghcr.io/devcontainers/features/node"
  ]
}

Common Feature Combinations

Full Stack JavaScript

{
  "features": {
    "ghcr.io/devcontainers/features/node:1": { "version": "20" },
    "ghcr.io/devcontainers/features/git:1": {},
    "ghcr.io/devcontainers/features/github-cli:1": {},
    "ghcr.io/devcontainers/features/docker-in-docker:2": {}
  }
}

Python Data Science

{
  "features": {
    "ghcr.io/devcontainers/features/python:1": { "version": "3.11" },
    "ghcr.io/devcontainers/features/git:1": {},
    "ghcr.io/devcontainers/features/github-cli:1": {},
    "ghcr.io/devcontainers/features/postgresql-client:1": {}
  }
}

DevOps/Platform Engineering

{
  "features": {
    "ghcr.io/devcontainers/features/git:1": {},
    "ghcr.io/devcontainers/features/docker-in-docker:2": {},
    "ghcr.io/devcontainers/features/kubectl-helm-minikube:1": {},
    "ghcr.io/devcontainers/features/terraform:1": {},
    "ghcr.io/devcontainers/features/aws-cli:1": {}
  }
}

Go Microservices

{
  "features": {
    "ghcr.io/devcontainers/features/go:1": { "version": "1.21" },
    "ghcr.io/devcontainers/features/git:1": {},
    "ghcr.io/devcontainers/features/docker-in-docker:2": {},
    "ghcr.io/devcontainers/features/postgresql-client:1": {}
  }
}

Troubleshooting Features

Feature Not Installing

  1. Check feature name spelling (case-sensitive)
  2. Check version exists
  3. Review devcontainer creation logs
  4. Try rebuilding without cache

Feature Conflicts

Some features may conflict:

  • Multiple versions of same language
  • Docker-in-Docker vs Docker-outside-of-Docker
  • Different shell configurations

Use overrideFeatureInstallOrder to control order.

Slow Feature Installation

Features install sequentially. For faster startup:

  1. Move stable tools to Dockerfile
  2. Use prebuilds for team repositories
  3. Only include actually needed features

Finding Feature Options

  1. Check official docs: https://containers.dev/features
  2. Check feature's GitHub repo README
  3. Look at devcontainer-feature.json in feature source

Source: SKILL.md on GitHub

1 alert14d5 checks · Risk HIGH
  • Gen Agent Trust Hub14d

    The devcontainer skill provides diagnostic tools and templates for Docker development environments, including scripts to analyze configuration files and scan container images for vulnerabilities. It is classified as low risk because it processes local configuration files which could be manipulated to influence diagnostic output (indirect prompt injection) and references a remote installation script for the Trivy security scanner in its documentation.

  • Socket14d

    No alerts

  • Snyk14d

    Risk: LOW · No issues

  • Runlayer7mo

    7/8 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 99a8797. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 months ago.

Dormantupdated 8 months ago
Other metadata
compatibility
Requires Docker Desktop or compatible container runtime. Works with VS Code and GitHub Codespaces.
metadata
{
  "author": "jwynia",
  "version": "1.0",
  "type": "diagnostic",
  "mode": "diagnostic+generative",
  "domain": "development"
}

README badge

README badge for jwynia/agent-skills/devcontainer