{"meta":{"title":"Introducción a los contenedores dev","intro":"Cuando trabajas en un codespace, el entorno en el que trabajas se crea mediante un contenedor de desarrollo hospedado en una máquina virtual.","product":"Codespaces","breadcrumbs":[{"href":"/es/codespaces","title":"Codespaces"},{"href":"/es/codespaces/setting-up-your-project-for-codespaces","title":"Configurar tu proyecto"},{"href":"/es/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration","title":"Incorporación de una configuración de contenedor de desarrollo"},{"href":"/es/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers","title":"Introducción a los contenedores dev"}],"documentType":"article"},"body":"# Introducción a los contenedores dev\n\nCuando trabajas en un codespace, el entorno en el que trabajas se crea mediante un contenedor de desarrollo hospedado en una máquina virtual.\n\n## Acerca de los contenedores dev\n\nLos contenedores de desarrollo son contenedores de Docker que están configurados específicamente para proporcionar un entorno de desarrollo completo. Siempre que trabajes en un codespace, estarás usando un contenedor de desarrollo en una máquina virtual.\n\nPuedes configurar el contenedor de desarrollo para un repositorio a fin de que los codespaces creados para ese repositorio te proporcionen un entorno de desarrollo personalizado, completo con todas las herramientas y entornos de ejecución que necesitas para trabajar en un proyecto específico. Si no defines una configuración en el repositorio, GitHub Codespaces usa una configuración predeterminada, que incluye muchas de las herramientas comunes que el equipo podría necesitar para el desarrollo con el proyecto. Consulta [Uso de la configuración predeterminada del contenedor de desarrollo](#using-the-default-dev-container-configuration).\n\nLos archivos de configuración de un contenedor de desarrollo se incluyen en un directorio `.devcontainer` del repositorio. Puedes usar Visual Studio Code para agregar archivos de configuración automáticamente. Puedes elegir entre una selección de configuraciones predefinidas para varios tipos de proyecto. Puedes usarlos sin ninguna configuración adicional, o bien puedes editar las configuraciones para refinar el entorno de desarrollo que producen. Consulta [Uso de una configuración predefinida de contenedor de desarrollo](#using-a-predefined-dev-container-configuration).\n\nComo alternativa, puedes agregar tus propios archivos de configuración personalizados. Consulta [Creación de una configuración personalizada de contenedor de desarrollo](#creating-a-custom-dev-container-configuration).\n\nPuedes definir una única configuración de contenedor de desarrollo para un repositorio, configuraciones diferentes para distintas ramas o varias configuraciones. Cuando hay varias configuraciones disponibles, los usuarios pueden elegir su configuración preferida cuando crean un codespace. Esto es especialmente útil para repositorios de gran tamaño que contienen código fuente en diferentes lenguajes de programación o para proyectos diferentes. Puedes crear una selección de configuraciones que permitan a los distintos equipos trabajar en un codespace configurado adecuadamente para el trabajo que están realizando.\n\nAl crear un codespace a partir de una plantilla, puedes empezar con uno o varios archivos de configuración de contenedor de desarrollo en el área de trabajo. Para configurar aún más el entorno, puedes agregar o quitar la configuración de estos archivos y recompilar el contenedor para aplicar los cambios en el espacio de código en el que estás trabajando. Si publicas el codespace en un repositorio en GitHub, los codespaces creados a partir de ese repositorio compartirán la configuración que hayas definido. Ver [Aplicación de cambios de configuración a un codespace](#applying-configuration-changes-to-a-codespace) y [Creación de un codespace a partir de una plantilla](/es/codespaces/developing-in-a-codespace/creating-a-codespace-from-a-template#publishing-to-a-remote-repository).\n\n### devcontainer.json\n\nEl archivo principal de una configuración de contenedor de desarrollo es el archivo `devcontainer.json`. Puedes usar este archivo a fin de determinar el entorno de los codespaces creados para el repositorio. El contenido de este archivo define un contenedor de desarrollo que puede incluir marcos, herramientas, extensiones y desvío de puertos. El archivo `devcontainer.json` normalmente contiene una referencia a un Dockerfile, que normalmente se encuentra junto con el archivo `devcontainer.json`.\n\nSi creas un codespace desde un repositorio sin un archivo `devcontainer.json`, o si empiezas desde la plantilla en blanco de GitHub, se usa la configuración predeterminada del contenedor de desarrollo. Consulta [Uso de la configuración predeterminada del contenedor de desarrollo](#using-the-default-dev-container-configuration).\n\nEl archivo `devcontainer.json` se encuentra normalmente en el directorio `.devcontainer` del repositorio. Como alternativa, puedes localizarlo directamente en la raíz del repositorio, en cuyo caso el nombre de archivo debe comenzar con un punto: `.devcontainer.json`.\n\nSi quieres tener una selección de configuraciones de contenedor de desarrollo en el repositorio, toda alternativa al archivo `.devcontainer/devcontainer.json` (o `.devcontainer.json`) debe encontrarse en su propio subdirectorio en la ruta de acceso `.devcontainer/SUBDIRECTORY/devcontainer.json`. Por ejemplo, podrías tener una selección de dos configuraciones:\n\n* `.devcontainer/database-dev/devcontainer.json`\n* `.devcontainer/gui-dev/devcontainer.json`\n\nCuando tienes varios archivos `devcontainer.json` en el repositorio, cada codespace se crea a partir de una de las configuraciones únicamente. La configuración no se puede importar ni heredar entre archivos `devcontainer.json`. Si un archivo `devcontainer.json` de un subdirectorio personalizado tiene archivos dependientes, como Dockerfile o scripts que se ejecutan mediante comandos en el archivo `devcontainer.json`, se recomienda colocar estos archivos en el mismo subdirectorio.\n\nPara obtener información sobre cómo elegir la configuración de contenedor de desarrollo preferida al crear un codespace, consulta [Creación de un codespace para un repositorio](/es/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository#creating-a-codespace-for-a-repository).\n\nPara obtener información sobre la configuración y las propiedades que puedes establecer en un archivo `devcontainer.json`, consulta la [especificación](https://containers.dev/implementors/spec) en el sitio web Development Containers.\n\n#### Procedimientos para usar devcontainer.json\n\nEs útil pensar en el archivo `devcontainer.json` como que proporciona \"customización\" en lugar de \"personalización.\" Solo debes incluir cosas que todos los usuarios que trabajan en el código base necesitan como elementos estándar del entorno de desarrollo, no como cosas que sean preferencias personales. Herramientas como los linters son buenas para estandarizar y exigir que todos los usuarios las tengan instaladas, por lo que es bueno incluirlas en tu archivo `devcontainer.json`. Las cosas como los decoradores de la interfaz de usuario o los temas son opciones personales que no deben colocarse en el archivo `devcontainer.json`.\n\nPuedes personalizar los codespaces mediante dotfiles y Sincronización de ajustes. Consulte [Personalización de GitHub Codespaces para su cuenta](/es/codespaces/setting-your-user-preferences/personalizing-github-codespaces-for-your-account).\n\n### Dockerfile\n\nPuedes agregar un Dockerfile como parte de la configuración del contenedor de desarrollo.\n\nDockerfile es un archivo de texto que contiene las instrucciones necesarias para crear una imagen de contenedor de Docker. Esta imagen se usa para generar un contenedor de desarrollo cada vez que alguien crea un codespace mediante el archivo `devcontainer.json` que hace referencia a este Dockerfile. Normalmente, las instrucciones del Dockerfile comienzan haciendo referencia a una imagen primaria en la que se basa la imagen que se creará. Esto va seguido de comandos que se ejecutan durante el proceso de creación de imágenes, por ejemplo, para instalar paquetes de software.\n\nEl Dockerfile de un contenedor de desarrollo se encuentra normalmente en la carpeta `.devcontainer`, junto con el elemento `devcontainer.json` en el que se hace referencia al mismo.\n\n> \\[!NOTE]\n> Como alternativa al uso de un Dockerfile, puedes usar la propiedad `image` en el archivo `devcontainer.json` para hacer referencia directamente a una imagen existente que quieras usar. La imagen que especifiques aquí debe estar permitida por cualquier directiva de imagen de la organización que se haya establecido. Consulta [Restricción de la imagen base para codespaces](/es/codespaces/managing-codespaces-for-your-organization/restricting-the-base-image-for-codespaces). Si no se encuentra un Dockerfile ni una imagen, se usará la imagen de contenedor predeterminada. Consulta [Uso de la configuración predeterminada del contenedor de desarrollo](#using-the-default-dev-container-configuration).\n\n#### Ejemplo de Dockerfile sencillo\n\nEn el ejemplo siguiente se usan cuatro instrucciones:\n\n```\n          `ARG` define una variable en tiempo de compilación.\n\n          `FROM` especifica la imagen primaria en la que se basará la imagen de Docker generada. Si se ha configurado una directiva de imagen base, lo que permite usar solo determinadas imágenes, la imagen especificada debe coincidir con una de las referencias de imagen de la directiva. Si no es así, los codespace para este repositorio se crearán en modo de recuperación. Consulta [AUTOTITLE](/codespaces/managing-codespaces-for-your-organization/restricting-the-base-image-for-codespaces).\n\n          `COPY` copia un archivo del repositorio y lo agrega al sistema de archivos del codespace.\n\n          `RUN` actualiza las listas de paquetes y ejecuta un script. También puedes usar una instrucción `RUN` para instalar software, tal como se muestra en las instrucciones comentadas. Para ejecutar varios comandos, usa `&&` a fin de combinar los comandos en una sola instrucción `RUN`.\n```\n\n```dockerfile copy\nARG VARIANT=\"16\"\nFROM mcr.microsoft.com/devcontainers/javascript-node:1-${VARIANT}\n\nRUN apt-get update && export DEBIAN_FRONTEND=noninteractive \\\n    && apt-get -y install --no-install-recommends bundler\n\n# [Optional] Uncomment if you want to install an additional version\n#  of node using nvm\n# ARG EXTRA_NODE_VERSION=18\n# RUN su node -c \"source /usr/local/share/nvm/nvm.sh \\\n#    && nvm install ${EXTRA_NODE_VERSION}\"\n\nCOPY ./script-in-your-repo.sh /tmp/scripts/script-in-codespace.sh\nRUN apt-get update && bash /tmp/scripts/script-in-codespace.sh\n```\n\n> \\[!NOTE]\n> En el ejemplo anterior, el script que se copia en el codespace (`script-in-your-repo.sh`) debe existir en el repositorio.\n\nPara obtener más información sobre las instrucciones compatibles con Docker, consulta [Referencia de Dockerfile](https://docs.docker.com/engine/reference/builder) en la documentación de Docker.\n\n#### Uso de un Dockerfile\n\nPara usar un Dockerfile como parte de una configuración de contenedor de desarrollo, haz referencia a él en el archivo `devcontainer.json` mediante la propiedad `dockerfile`.\n\n```jsonc copy\n{\n  // ...\n  \"build\": { \"dockerfile\": \"Dockerfile\" },\n  // ...\n}\n```\n\nHay varias opciones disponibles si quieres usar la orquestación de contenedores existente en el contenedor de desarrollo. Consulte la sección \"Opciones de orquestación\" de la [especificación](https://containers.dev/implementors/spec/#orchestration-options) en el sitio web de contenedores de desarrollo.\n\n## Uso de la configuración predeterminada del contenedor de desarrollo\n\nSi no agrega una configuración de contenedor de desarrollador al repositorio, o si la configuración no especifica una imagen base que se va a usar, GitHub crea un contenedor a partir de una imagen de Linux predeterminada. Esta imagen de Linux incluye varias versiones en tiempo de ejecución para lenguajes populares como Python, Node, PHP, Java, Go, C++, Ruby y .NET Core/C#. Se usan las versiones LTS o más recientes de estos lenguajes. También hay herramientas para admitir la ciencia de datos y el aprendizaje automático, como JupyterLab y Conda. La imagen de contenedor de desarrollo predeterminada también incluye otras herramientas de desarrollo y utilidades como Git, GitHub CLI, yarn, openssh y vim. Para ver todos los lenguajes, tiempos de ejecución y herramientas que se incluyen, usa el comando `devcontainer-info content-url` dentro del terminal de codespace y sigue la dirección URL que genera el comando.\n\nPara obtener información sobre lo que se incluye en la imagen de Linux predeterminada, consulta el repositorio [`devcontainers/images`](https://github.com/devcontainers/images/tree/main/src/universal).\n\nLa configuración predeterminada es una buena opción si estás trabajando en un proyecto pequeño que utiliza los lenguajes y herramientas que proporciona GitHub Codespaces.\n\n> \\[!NOTE]\n> GitHub no cobra por el almacenamiento de contenedores creados a partir de la imagen predeterminada del contenedor de desarrollador. Para obtener más información sobre la facturación del almacenamiento del codespace, consulta [facturación de GitHub Codespaces](/es/billing/concepts/product-billing/github-codespaces). Para información sobre cómo comprobar si un codespace se compiló a partir de la imagen de contenedor de desarrollo predeterminada, consulta [Sacar el máximo partido del uso incluido](/es/codespaces/troubleshooting/troubleshooting-included-usage#storage-usage-for-your-base-dev-container).\n\n## Uso de una configuración predefinida de contenedor de desarrollo\n\nSi usas Codespaces en Visual Studio Code, o en un explorador web, puedes crear una configuración de contenedor de desarrollo para el repositorio eligiendo una lista de configuraciones predefinidas. Estas configuraciones proporcionan una configuración común para tipos de proyecto en particular, y pueden ayudarte a comenzar rápidamente con una configuración que ya tenga las opciones adecuadas para el contenedor, la configuración de Visual Studio Code, y las extensiones de Visual Studio Code que deben estar instaladas.\n\nUtilizar una configuración predefinida es una gran idea si necesitas extensibilidad adicional. También puedes iniciar con una configuración predefinida y modificarla conforme lo requieras de acuerdo con el proyecto. Para obtener más información sobre las definiciones de contenedores de desarrollo predefinidos, consulta el repositorio [`devcontainers/images`](https://github.com/devcontainers/images/tree/main/src).\n\nPuedes agregar una configuración predefinida de contenedor de desarrollo mientras trabajas en un codespace o en un repositorio localmente. Para hacerlo en VS Code mientras trabajas localmente y no estás conectado a un espacio de código, debes tener la extensión \"Contenedores de desarrollo\" instalada y habilitada. Para obtener más información sobre esta extensión, consulta [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). En el procedimiento siguiente se describe el proceso cuando se usa un codespace. Los pasos de VS Code cuando no estás conectado a un codespace son muy similares.\n\n1. Acceda a Visual Studio Code Command Palette (<kbd>Mayús</kbd>+<kbd>Comando</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Mayús</kbd>+<kbd>P</kbd>) y, después, empiece a escribir \"agregar desarrollo\". Haz clic en **Codespaces: agregar archivos de configuración para el contenedor de desarrollo**.\n\n   ![Captura de pantalla de la paleta de comandos, con \"agregar desarrollo\" escrito y \"Codespaces: agregar archivos de configuración para el contenedor de desarrollo\" enumerado.](/assets/images/help/codespaces/add-prebuilt-container-command.png)\n\n2. Haz clic en **Crear una nueva configuración**.\n\n3. Haz clic en **Mostrar todas las definiciones**.\n\n   ![Captura de pantalla del menú \"Agregar archivos de configuración del contenedor de desarrollo\" con la lista desplegable que muestra varias opciones, incluida \"Mostrar todas las definiciones\".](/assets/images/help/codespaces/show-all-definitions.png)\n\n4. Haz clic en la definición que quieras utilizar.\n\n   ![Captura de pantalla del menú \"Agregar archivos de configuración de contenedor de desarrollo\" que muestra opciones como \"Alpine\", \"C# (.NET),\" \"C++\" y \"Debian\".](/assets/images/help/codespaces/predefined-container-definitions-list.png)\n\n5. Sigue los mensajes para personalizar tu definición.\n\n6. Haz clic en **Aceptar**.\n\n7. Si estás trabajando en un codespace, aplica los cambios; para ello, haz clic en **Recompilar ahora** en el elemento emergente situado en la parte inferior derecha de la ventana. Para más información sobre cómo reconstruir el contenedor, consulta [Cómo aplicar cambios de configuración a un codespace](#applying-configuration-changes-to-a-codespace).\n\n   ![Captura de pantalla del mensaje: \"Hemos observado un cambio en la configuración del contenedor de desarrollo\". A continuación se encuentra el botón \"Recompilar ahora\".](/assets/images/help/codespaces/rebuild-prompt.png)\n\n### Agregar características adicionales al archivo `devcontainer.json`\n\nLas características son unidades independientes de código de instalación y configuración del contenedor de desarrollo diseñadas para funcionar en una amplia gama de imágenes de contenedor base. Puedes usar características para agregar rápidamente herramientas, runtimes o bibliotecas a la imagen de codespace. Para obtener más información, consulta las [características disponibles](https://containers.dev/features) y la [especificación de las características](https://containers.dev/implementors/features/) en el sitio web de Contenedores de desarrollo.\n\nPuede agregar características a un archivo `devcontainer.json` desde VS Code o desde su repositorio en GitHub. Consulta [Adición de características a un archivo devcontainer.json](/es/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/adding-features-to-a-devcontainer-file?tool=vscode).\n\n## Creación de una configuración personalizada de contenedor de desarrollo\n\nSi no hay ninguna de las configuraciones predefinidas que satisfaga tus necesidades, puedes crear una configuración personalizada escribiendo tu propio archivo `devcontainer.json`.\n\n* Si vas a agregar un único archivo `devcontainer.json` que usarán todos los usuarios que creen un codespace desde el repositorio, crea el archivo en un directorio `.devcontainer` en la raíz del repositorio.\n* Si quieres ofrecer a los usuarios una opción de configuración, puedes crear varios archivos personalizados `devcontainer.json`, cada uno ubicado en un subdirectorio independiente del directorio `.devcontainer`.\n\n  > \\[!NOTE]\n  >\n  > * No se pueden encontrar los archivos `devcontainer.json` en directorios de más de un nivel por debajo de `.devcontainer`. Por ejemplo, un archivo en `.devcontainer/teamA/devcontainer.json` funcionará, pero en `.devcontainer/teamA/testing/devcontainer.json` no.\n  > * Cuando los usuarios crean codespaces con el botón **Usar esta plantilla** de un repositorio de plantillas, no se les permitirá elegir entre varias configuraciones. El codespace se compilará en función de la configuración predeterminada definida en `.devcontainer/devcontainer.json`, o bien en `.devcontainer.json` en la raíz del repositorio. Consulte [Configuración de un repositorio de plantillas para GitHub Codespaces](/es/codespaces/setting-up-your-project-for-codespaces/setting-up-your-repository/setting-up-a-template-repository-for-github-codespaces).\n\n  Si se encuentran varios archivos `devcontainer.json` en el repositorio, se mostrarán en la lista desplegable **Configuración del contenedor de desarrollo** en la página de opciones de creación de codespace. Consulta [Creación de un codespace para un repositorio](/es/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository#creating-a-codespace-for-a-repository).\n\n  ![Captura de pantalla de la página de opciones de creación del espacio de código, en la que se muestra una lista desplegable que muestra una selección de archivos de configuración.](/assets/images/help/codespaces/configuration-file-choice.png)\n\n### Adición de un archivo `devcontainer.json`\n\nSi aún no tiene un archivo `devcontainer.json` en el repositorio, puede agregar rápidamente uno desde GitHub.\n\n1. Ve al repositorio y haz clic en la lista desplegable **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-code\" aria-label=\"code\" role=\"img\"><path d=\"m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z\"></path></svg> Código**.\n2. En la pestaña **Codespaces**, haz clic en los puntos suspensivos ( **...** ) y selecciona **Configurar contenedor de desarrollo**.\n\n   ![Captura de pantalla de la lista desplegable \"Código\" y, dentro de ella, otra lista desplegable con la opción \"Configurar contenedor de desarrollo\" resaltada.](/assets/images/help/codespaces/configure-dev-container.png)\n\nSe abrirá un nuevo archivo `.devcontainer/devcontainer.json` en el editor. El archivo contendrá algunas propiedades iniciales, incluido un objeto `features` al que puedes agregar nuevas herramientas, bibliotecas o entornos de ejecución. Consulta [Adición de características a un archivo devcontainer.json](/es/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/adding-features-to-a-devcontainer-file?tool=webui).\n\nSi el repositorio ya contiene uno o varios archivos `devcontainer.json`, al hacer clic en **Configurar contenedor de desarrollo** se abrirá el archivo `devcontainer.json` existente con la prioridad más alta según la [especificación](https://containers.dev/implementors/spec/#devcontainerjson) del sitio web de Contenedores de desarrollo.\n\n### Selección de configuración predeterminada durante la creación del codespace\n\nSi `.devcontainer/devcontainer.json` o `.devcontainer.json` existen, uno de los dos será la selección predeterminada en la lista de archivos de configuración disponibles al crear un codespace. Si no existe ningún archivo, la configuración predeterminada del contenedor de desarrollo se seleccionará de manera predeterminada.\n\nEn la captura de pantalla siguiente, el repositorio no contiene archivos `.devcontainer/devcontainer.json` o `.devcontainer.json`, por lo que se selecciona la configuración predeterminada del contenedor de desarrollo. Sin embargo, se han definido dos archivos de configuración alternativos en subdirectorios del directorio `.devcontainer`, por lo que se muestran como opciones.\n\n![Captura de pantalla de la lista desplegable \"Configuración del contenedor de desarrollo\" con la opción de configuración predeterminada seleccionada.](/assets/images/help/codespaces/configuration-file-choice-default.png)\n\n### Edición del archivo devcontainer.json\n\nPuedes agregar y editar las claves de configuración compatibles en el archivo `devcontainer.json` para especificar aspectos del entorno del codespace, como por ejemplo, qué extensiones de VS Code se instalarán. Para obtener información sobre la configuración y las propiedades que puedes establecer en un archivo `devcontainer.json`, consulta la [especificación](https://containers.dev/implementors/spec) en el sitio web Development Containers.\n\nEl archivo `devcontainer.json` se escribe con el formato JSONC (JSON con comentarios). Esto permite incluir comentarios en el archivo de configuración. Consulte [Edición de JSON con VS Code](https://code.visualstudio.com/docs/languages/json#_json-with-comments) en la documentación de VS Code.\n\n> \\[!NOTE]\n> Si usas un linter para validar el archivo `devcontainer.json`, asegúrate de que está establecido en JSONC y no en JSON; de lo contrario, los comentarios se notificarán como errores.\n\n### Configuración de la interfaz de VS Code\n\nPuedes configurar las opciones de interfaz de VS Code, con tres ámbitos: usuario, remoto \\[codespaces] y espacio de trabajo. Puedes ver estos ámbitos en el Editor de Configuración de VS Code.\n\nPara mostrar el editor de configuración, use el método abreviado de teclado <kbd>Command</kbd>+<kbd>,</kbd> (Mac) / <kbd>Ctrl</kbd>+<kbd>,</kbd> (Linux/Windows).\n\n![Captura de pantalla del editor \"Configuración\" con las pestañas de los tres ámbitos resaltados con un contorno naranja.](/assets/images/help/codespaces/scopes-for-vscode.png)\n\nSi se define una configuración en varios ámbitos, la configuración de Área de trabajo tiene prioridad, después la configuración de Remoto \\[Codespaces] y después la configuración de Usuario.\n\nPuedes definir la configuración predeterminada de la interfaz de VS Code en dos lugares.\n\n* La configuración de la interfaz definida en el archivo `.vscode/settings.json` del repositorio se aplica como configuración con ámbito de área de trabajo en el codespace.\n* La configuración de la interfaz definida en la clave `settings` del archivo `devcontainer.json` se aplica como configuración con ámbito de \\[Codespaces] remotos en el codespace.\n\n## Aplicación de cambios de configuración a un codespace\n\nLos cambios en una configuración se aplicarán la próxima vez que crees un codespace. Sin embargo, puedes aplicar los cambios a un codespace existente recompilando el contenedor. Puedes hacerlo dentro de un codespace en la aplicación de escritorio o cliente web VS Code, o bien puedes usar GitHub CLI.\n\n> \\[!NOTE]\n> Al recompilar el contenedor de un codespace, los cambios realizados fuera del directorio `/workspaces` se borran. Los cambios realizados dentro del directorio `/workspaces`, entre los que se incluye el clon del repositorio o la plantilla desde la que ha creado el codespace, se conservan al recompilar. Para más información, consulta [Análisis en profundidad de GitHub Codespaces](/es/codespaces/about-codespaces/deep-dive#about-the-directory-structure-of-a-codespace).\n\n### Reconstrucción del contenedor de desarrollo en el cliente web o la aplicación de escritorio de VS Code\n\n1. Accede a VS Code Command Palette (<kbd>Mayús</kbd>+<kbd>Comando</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Mayús</kbd>+<kbd>P</kbd>) y, después, empieza a escribir \"recompilar\". Haz clic en **Codespaces: recompilar contenedor**.\n\n   ![Captura de pantalla de la paleta de comandos con una búsqueda de \"rebuild container\" y la opción \"Codespace: Rebuild Container\" resaltada en la lista desplegable.](/assets/images/help/codespaces/codespaces-rebuild.png)\n\n   > \\[!TIP]\n   > En ocasiones, es posible que quieras realizar una recompilación completa para borrar la memoria caché y recompilar el contenedor con imágenes nuevas. Para más información, consulta [Reconstrucción del contenedor en un codespace](/es/codespaces/developing-in-codespaces/rebuilding-the-container-in-a-codespace#about-rebuilding-a-container).\n2. Si los cambios en la configuración del contenedor de desarrollo causan un error de contenedor, el codespace se ejecutará en modo de recuperación y verás un mensaje de error.\n\n   ![Captura de pantalla de un mensaje que indica que el codespace se está ejecutando en modo de recuperación. Debajo del mensaje se muestran los botones con la etiqueta \"Cancelar\" y \"Ver registro de creación\".](/assets/images/help/codespaces/recovery-mode-error-message.png)\n\n   * Para diagnosticar el error revisando los registros de creación, haga clic en **View creation log**.\n   * Para corregir los errores identificados en los registros, actualice el archivo `devcontainer.json`.\n   * Para aplicar los cambios, vuelve a crear tu contenedor.\n\n### Uso de GitHub CLI para volver a generar un contenedor de desarrollo\n\nSi has cambiado una configuración de contenedor de desarrollo fuera de VS Code (por ejemplo, en GitHub), puedes usar GitHub CLI para recompilar el contenedor de desarrollo para un codespace existente.\n\n1. En un terminal, escribe el siguientes comando.\n\n   ```shell\n   gh codespace rebuild\n   ```\n\n   Se muestran los codespace.\n\n2. Use las teclas de dirección del teclado para resaltar el codespace necesario y, a continuación, presiona <kbd>Entrar</kbd>.\n\n## Información adicional\n\n* [Precompilación de los codespaces](/es/codespaces/prebuilding-your-codespaces)"}