devcontainers
Use when building, modifying, using, or distributing Dev Containers — creating or editing devcontainer.json from scratch, adding devcontainer features…
Skill by joeblackwaslike
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/joeblackwaslike-devcontainers
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, testing, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/devcontainers
What's inside
- Skill name
devcontainers- Description
- Use when building, modifying, using, or distributing Dev Containers — creating or editing devcontainer.json from scratch, adding devcontainer features, writing Dockerfiles for dev containers, authoring custom features or templates, publishing to GHCR, using the devcontainer CLI (devcontainer up, build, exec, features test), or debugging container startup failures. Also use when the user mentions ghcr.io/joeblackwaslike/devcontainer, the claude-code or claude-code-extend templates, or asks about setting up a reproducible development environment in a container. Invoke this skill whenever the word "devcontainer", "dev container", ".devcontainer", or "devcontainer.json" appears, or whenever someone wants to containerize their development environment.
- License
- MIT
- Metadata
- last_updated: 2026-06-01
- Instructions
- 112 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (24)
- SKILL.md
- cli.md · references/
- devcontainer-json.md · references/
- distribution.md · references/
- features.md · references/
- README.md · references/generated/
- feature-authoring-best-practices.md · references/generated/
- feature-authoring-guide.md · references/generated/
- features-distribution.md · references/generated/
- features-index.md · references/generated/
- features-spec.md · references/generated/
- json-reference.md · references/generated/
- manifest.json · references/generated/
- templates-distribution.md · references/generated/
- templates-index.md · references/generated/
- templates-spec.md · references/generated/
- vscode-cli.md · references/generated/
- vscode-containers.md · references/generated/
- vscode-create.md · references/generated/
- vscode-tips.md · references/generated/
- gotchas.md · references/
- joe-devcontainer.md · references/
- templates.md · references/
- update.js · scripts/
SKILL.md (first lines)
# Dev Containers
Core principle: A devcontainer is a version-controlled, reproducible development environment. Prefer features over Dockerfile layers for common tools; write Dockerfiles only for custom tooling not available as a feature.
## Route First
| Task | Reference |
|---|---|
| Create or edit devcontainer.json | `references/devcontainer-json.md` |
| Add or find features | `references/features.md` + `references/generated/features-index.md` |
| Author a custom feature | `references/features.md` (authoring section) |
| Create or publish a template | `references/templates.md` |
| devcontainer CLI commands | `references/cli.md` |
| Publish features/templates to OCI/GHCR | `references/distribution.md` |
| Debug startup, mounts, GPU, PATH, permissions | `references/gotchas.md` |
| Joe's personal devcontainer (ghcr.io/joeblackwaslike/devcontainer) | `references/joe-devcontainer.md` |
| Browse all available features / templates | `references/generated/features-index.md` or `references/generated/templates-index.md` |
Read the most specific reference first; read others only if the first doesn't cover the need.
## Quick Patterns
### Minimal devcontainer.json
```json
{
"name": "My Project",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/devcontainers/features/node:1": { "version": "lts" }
}
}
```
### Config file discovery order
1. `.devcontainer/devcontainer.json`
2. `.devcontainer.json` (project root)
3. `.devcontainer/<subfolder>/devcontainer.json` (multi-config; user selects at open time)
### `image` vs `build`
Use `image` when the base needs no customization.
Use `build.dockerfile` when you need custom layers (apt installs, baked files, config not available as a feature).
```json
{ "build": { "dockerfile": "Dockerfile", "context": "..", "args": { "NODE_VER": "18" } } }
```
### Lifecycle execution order
```
initializeCommand (host machine, before anything)
→ image pull / build
→ features install (as root)
→ onCreateCommand (container, once on creation)
→ postCreateCommand (container, once; runs as remoteUser)
→ postStartCommand (container, every start/rebuild)
→ postAttachCommand (container, every editor attach)
```
Any non-zero exit skips all subsequent scripts. Scripts can be a string, array, or parallel object:
```json
"postCreateCommand": {
"deps": "npm install",
"types": "npm run typecheck"
}
```
### Environment variables: `containerEnv` vs `remoteEnv`
| Property | Set at | Visible to |
|---|---|---|
| `containerEnv` | Image build time | All processes in container |
| `remoteEnv` | Runtime (by tooling) | VS Code terminals, tasks, debug only |
Always append to PATH — never overwrite:
```json
"remoteEnv": { "PATH": "${containerEnv:PATH}:/my/custom/bin" }
```
### VS Code customizations
```json
"customizations": {
"vscode": {
"extensions": ["ms-python.python", "esbenp.prettier-vscode"],
"settings": { "editor.formatOnSave": true }
}
}
```
## Red Flags — Stop
- Installing a common tool in `postCreateCommand` when a Feature exists for it
- Setting `PATH` in `remoteEnv` without `${containerEnv:PATH}:` prefix
- Adding `"--gpus all"` to `runArgs` without guarding for non-GPU hosts
- Publishing to GHCR without setting package visibility to **public**
- Editing devcontainer.json and expecting auto-rebuild — VS Code requires explicit `Dev Containers: Rebuild Container`
- Running `postCreateCommand` as root when the intent is user-level setup (use `remoteUser`)
## Completion Criteria
- Config validates: `devcontainer read-configuration --workspace-folder .` exits 0
- Container starts: `devcontainer up --workspace-folder .` exits 0
- All lifecycle scripts exit 0
- For features: `devcontainer features test -f ./src/<feature>` passes
- For distribution: GHCR package is set to **public** and version is confirmed in registryFrom joeblackwaslike/agent-skills, MIT.
More from joeblackwaslike/agent-skills
- 0.592score
beads-operations
joeblackwaslike
Use when running, maintaining, or troubleshooting beads (`bd`) day-to-day — deciding bd vs TodoWrite, Joe's shared-server conventions (`bd init…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
developing-for-github
joeblackwaslike
Use when building software that integrates with GitHub — GitHub Apps, OAuth apps, webhook consumers, bots, CI checks, and automation built on the GitHub API.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
docusaurus-docs-builder
joeblackwaslike
Use when creating, redesigning, rewriting, or improving a Docusaurus documentation site, docs portal, developer docs, product docs, API docs, guide site…
SkillAFreshness: A★ 1Claude Code +9 - 0.552score
recovering-session-context
joeblackwaslike
Reconstruct what happened in prior agent sessions from their transcripts and surface everything raised but never resolved — unanswered questions, work…
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
best-practices-for-agentic-development
joeblackwaslike
Use when designing, building, reviewing, testing, or improving agents, agentic workflows, agent skills, MCP servers, tool interfaces, subagent systems, or…
SkillBFreshness: B★ 1Claude Code +9 - 0.548score
agent-instructions
joeblackwaslike
Use whenever creating OR editing CLAUDE.md, AGENTS.md, GEMINI.md, a SKILL.md, or any other file whose job is to instruct an AI coding agent, at any scope…
SkillBFreshness: B★ 1Claude Code +9 - 0.548score
autonomous-agent-operations
joeblackwaslike
Use when operating solo on a task handed off without the user available for interactive check-ins — ask every clarifying question up front, decide and file a…
SkillBFreshness: B★ 1Claude Code +9 - 0.548score
authoring-agent-skills
joeblackwaslike
Use when creating, adding, or maintaining a skill in this agent-skills repo — especially a "working-with-X" skill that wraps external/official docs by…
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
senior-engineering-best-practices
joeblackwaslike
Use in any development session that benefits from a senior engineer's accumulated judgment, methodology, and runbooks — broader than any single category, most…
SkillBFreshness: B★ 1Claude Code +9 - 0.540score
git-github-workflows
joeblackwaslike
Git and GitHub workflow router.
SkillBFreshness: B★ 1Claude Code +9 - 0.502score
github-readme-overhaul
joeblackwaslike
Use when writing, rewriting, branding, visually overhauling, or optimizing a GitHub README.md for installs, downloads, stars, marketplace conversion, OSS…
SkillCFreshness: C★ 1Claude Code +9 - 0.502score
multi-provider-plugins
joeblackwaslike
Use when making a Claude Code plugin compatible with other AI coding assistants (Codex, OpenCode, Cursor, Gemini CLI), designing multi-provider plugin…
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 19, 2026 (10 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/joeblackwaslike/agent-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from joeblackwaslike
- 0.592score
docusaurus-docs-builder
joeblackwaslike
Use when creating, redesigning, rewriting, or improving a Docusaurus documentation site, docs portal, developer docs, product docs, API docs, guide site…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
developing-for-github
joeblackwaslike
Use when building software that integrates with GitHub — GitHub Apps, OAuth apps, webhook consumers, bots, CI checks, and automation built on the GitHub API.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
beads-operations
joeblackwaslike
Use when running, maintaining, or troubleshooting beads (`bd`) day-to-day — deciding bd vs TodoWrite, Joe's shared-server conventions (`bd init…
SkillAFreshness: A★ 1Claude Code +9 - 0.552score
best-practices-for-agentic-development
joeblackwaslike
Use when designing, building, reviewing, testing, or improving agents, agentic workflows, agent skills, MCP servers, tool interfaces, subagent systems, or…
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
recovering-session-context
joeblackwaslike
Reconstruct what happened in prior agent sessions from their transcripts and surface everything raised but never resolved — unanswered questions, work…
SkillBFreshness: B★ 1Claude Code +9 - 0.548score
autonomous-agent-operations
joeblackwaslike
Use when operating solo on a task handed off without the user available for interactive check-ins — ask every clarifying question up front, decide and file a…
SkillBFreshness: B★ 1Claude Code +9
Cite this page
devcontainers skill. Agent Mart. https://agentmart.dev/skills/joeblackwaslike-devcontainers (last updated 2026-10-24)