Saltar al contenido

generador devcontainer.json

Crea un devcontainer.json para VS Code Dev Containers, con un Dockerfile opcional.

Salida

generador devcontainer.json

Elige un lenguaje y esta herramienta crea un devcontainer.json listo para usar para la extensión Dev Containers de VS Code (y GitHub Codespaces, que lee el mismo archivo). Selecciona Node.js, Python, Go, PHP, Java o una imagen base simple de Ubuntu, establece la versión y el generador rellena la imagen Microsoft devcontainers correspondiente, un usuario de contenedor predeterminado sensato y un puerto predeterminado para reenviar.

Las opciones se asignan directamente a los campos que necesita un devcontainer.json real. Activa las características Git y Docker-in-Docker, o agrega Node.js a un contenedor que no sea Node, y aparecerán en el objeto "features" con la referencia ghcr.io correcta. Enumera los puertos reenviados, un postCreateCommand y un postStartCommand para ejecutar pasos de configuración automáticamente cuando se inicia el contenedor. Las extensiones y configuraciones de VS Code van bajo "customizations.vscode", una id de extensión o una configuración clave=valor por línea. Activar "Montar un volumen caché" agrega un volumen nombrado para la caché de dependencias del lenguaje — node_modules, caché de pip, caché de módulos de Go — para que una reconstrucción no comience desde cero. Activar "Generar también un Dockerfile" cambia el campo "image" por una referencia "build" y produce un Dockerfile coincidente junto a él.

Las entradas inválidas se descartan en lugar de romper el archivo: un puerto malformado, una id de extensión que no está en la forma publisher.name, o una línea de configuración sin "=" simplemente se omite, y el campo version elimina cualquier cosa que no sea una letra, dígito, punto o guión antes de que llegue a la etiqueta de imagen. El resultado siempre es JSON válido y analizable, y el contador en vivo debajo de la salida muestra cuántos archivos, características y caracteres se generaron mientras ajustas las opciones.

Todo se ejecuta localmente en tu navegador — los detalles del proyecto, la lista de extensiones o la configuración del entorno nunca salen de tu máquina. Copia el resultado, descárgalo como archivo .txt para pegarlo en .devcontainer/devcontainer.json (y Dockerfile, si generaste uno), o envíalo a la entrada de otra herramienta para seguir trabajando en él.

Preguntas frecuentes

¿Dónde va este archivo en mi proyecto?
Guárdalo como .devcontainer/devcontainer.json. Si también generaste un Dockerfile, guárdalo como .devcontainer/Dockerfile en la misma carpeta.
¿Qué son las "características" en un devcontainer.json?
Las características son pequeños fragmentos de configuración reutilizables — instalar Git, habilitar Docker-in-Docker, agregar un tiempo de ejecución de lenguaje — que se agregan a la imagen base sin que tengas que escribir un Dockerfile.
¿Qué pasa si dejo el campo de versión vacío?
El generador usa la etiqueta de imagen predeterminada actual de ese lenguaje, por lo que el archivo siempre es válido sin que tengas que buscar una.
¿Por qué mi ID de extensión o puerto desapareció de la salida?
Una entrada que no coincide con la forma esperada — un id de extensión sin el formato publisher.name, o un puerto fuera de 1–65535 — se descarta para que el archivo generado siempre siga siendo válido.
¿Se carga mi configuración del proyecto en algún lugar?
No. El devcontainer.json (y Dockerfile) se generan completamente en tu navegador a partir de las opciones que elijas — nada se envía a un servidor.