Dev Containers
Especificación para definir entornos de desarrollo reproducibles en contenedores, eliminando el problema de 'funciona en mi máquina' y acelerando el onboarding.
¿Qué es?
Dev Containers es una especificación abierta para definir entornos de desarrollo en contenedores Docker. Un archivo devcontainer.json describe el entorno completo: imagen base, extensiones de editor, herramientas, variables de entorno. Cualquier desarrollador puede abrir el proyecto y tener el mismo entorno en minutos.
Problema que resuelve
- «Funciona en mi máquina» → entorno idéntico para todos
- Onboarding de días → onboarding de minutos
- Conflictos de versiones → aislamiento por proyecto
- Setup manual → automatizado y versionado
devcontainer.json básico
{
"name": "Node.js",
"image": "mcr.microsoft.com/devcontainers/javascript-node:20",
"features": {
"ghcr.io/devcontainers/features/aws-cli:1": {}
},
"customizations": {
"vscode": {
"extensions": ["dbaeumer.vscode-eslint"]
}
},
"postCreateCommand": "npm install"
}Soporte
- VS Code (Dev Containers extension)
- GitHub Codespaces
- JetBrains (Gateway)
- DevPod (open source)
Features
Componentes reutilizables que agregan herramientas al contenedor:
- AWS CLI, Azure CLI, gcloud
- Node.js, Python, Go, Rust
- Docker-in-Docker
- Git, GitHub CLI
¿Por qué importa?
Los devcontainers eliminan el problema de «funciona en mi máquina» al definir el entorno de desarrollo como código. Cada desarrollador obtiene el mismo entorno reproducible, con las herramientas y dependencias correctas, sin contaminar su sistema local.
Referencias
- Dev Containers Specification — Especificación oficial.
- Available Features — Catálogo de features.
- Dev Container Specification — Dev Containers, 2024. Especificación oficial del formato.