Skip to main content

Restricción de la imagen base para codespaces

Puedes especificar qué imágenes base se pueden usar para los nuevos codespaces creados en tu organización.

Who can use this feature

To manage image constraints for an organization's codespaces, you must be an owner of the organization.

Información general

Al crear un codespace, se crea automáticamente un contenedor Docker en una máquina virtual remota. El contenedor Docker se crea a partir de una imagen de Docker. La imagen es básicamente una plantilla para los contenedores Docker y determina muchos aspectos del entorno resultante proporcionado por el codespace.

Puedes elegir qué imagen quieres usar para tus codespaces especificándola en la configuración del contenedor de desarrollo de un repositorio. Puedes hacerlo, por ejemplo, mediante la propiedad image del archivo devcontainer.json.

JSON
"image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:18",

Para obtener más información, consulta la especificación de contenedores de desarrollo en containers.dev.

Si no especificas una imagen en la configuración del contenedor de desarrollo de un repositorio, se usa la imagen predeterminada. La imagen predeterminada contiene una serie de versiones en tiempo de ejecución de lenguajes populares y herramientas de uso frecuente. Para obtener más información, consulte "Introducción a los contenedores de desarrollo".

Como propietario de la organización, puedes agregar una directiva para restringir qué imágenes se pueden usar para los codespaces creados en tu organización.

Si la imagen especificada en la configuración del contenedor de desarrollo no coincide con una de las imágenes permitidas, se muestra el siguiente mensaje cuando alguien intenta crear un codespace para el repositorio:

No se puede crear el codespace: la imagen base "DETALLES DE LA CONFIGURACIÓN DEL CONTENEDOR DE DESARROLLO" no está permitida de acuerdo con una directiva de la organización establecida por el administrador de tu organización.

Notas:

  • La directiva de imagen base solo se aplica cuando se crea un codespace. Actualmente no se aplica cuando se recompila un contenedor. Esto se modificará en una versión futura. Para obtener más información, consulta "Ciclo de vida de un codespace".
  • La directiva de imagen base no se aplica a la imagen predeterminada ni a la imagen que se usa para recuperar un codespace si se introduce un error en la configuración de un contenedor de desarrollo que impide que se recompile el contenedor.

Configurar políticas específicas para los repositorios y a lo largo de la organización

Cuando creas una política, eliges si esta aplica a todos los repositorios de tu organización o solo a algunos específicos. Si configuras una política a lo largo de la organización, entonces cualquier política que configures para los repositorios individuales debe de caer dentro de las restricciones que se configuraron a nivel organizacional. La adición de directivas hace que la elección de imágenes sea más restrictiva, no menos.

Por ejemplo, podrías crear una directiva para toda la organización que restrinja la imagen base a una de las 10 imágenes especificadas. Después, puedes establecer una directiva para el repositorio A que restrinja la imagen a un subconjunto compuesto por tan solo dos de las imágenes especificadas a nivel de la organización. Especificar imágenes adicionales para el repositorio A no tendrá ningún efecto, porque estas imágenes no están especificadas en la directiva para toda la organización. Si agregas una directiva a nivel organizacional, deberás establecerla en la mayor selección de imágenes que estará disponible para cualquier repositorio de tu organización. Entonces podrás agregar las políticas específicas para los repositorios y así restringir aún más la elección.

Nota: Las directivas de codespace son válidas únicamente en los codespaces que se facturarán a tu organización. Si un usuario individual crea un codespace para un repositorio de tu organización y la organización no se factura, dicho codespace no estará enlazado por estas políticas. Para obtener información sobre cómo elegir quién puede crear codespaces que se facturan a tu organización, consulta "Habilitar GitHub Codespaces para tu organización".

Adición de una directiva para definir las imágenes permitidas

  1. En la esquina superior derecha de GitHub.com, haga clic en la foto de perfil y luego en Your organizations. Opción Your organizations (Sus organizaciones) en el menú del perfil 2. Junto a la organización, haga clic en Settings. El botón de configuración 1. En la sección "Código, planificación y automatización" de la barra lateral, seleccione Codespaces y, después, haga clic en Directivas.

  2. En la página "Directivas de codespace", haga clic en Crear directiva.

  3. Ingresa un nombre para tu política nueva.

  4. Haz clic en Agregar restricción y elige Imágenes base.

    Captura de pantalla del menú desplegable "Agregar restricción"

  5. Haz clic en para editar la restricción.

    Captura de pantalla del icono de lápiz para editar la restricción

  6. En el campo "Valores permitidos", escribe la dirección URL completa de una imagen que quieras permitir.

    Captura de pantalla de una entrada en el campo "Valores permitidos"

    Nota: Debes especificar una URL de imagen que coincida exactamente con el valor especificado en una configuración de contenedor de desarrollo.

  7. Haz clic el botón más () para agregar el valor.

  8. Si es necesario, repite los dos pasos anteriores para agregar más direcciones URL de imágenes.

  9. Haz clic fuera del cuadro de diálogo para cerrarlo.

  10. De forma predeterminada, la directiva se establece para aplicarse a todos los repositorios; si deseas que se aplique solo a algunos de los repositorios de la organización, haz clic en Todos los repositorios y, a continuación, haz clic en Repositorios seleccionados en el menú desplegable.

    Captura de pantalla de la elección de "Repositorios seleccionados"

    Con la opción Repositorios seleccionados seleccionada:

    1. Haga clic en .

      Captura de pantalla del icono de engranaje para editar la configuración

    2. Selecciona los repositorios a los cuales quieres que aplique esta política.

    3. En la parte inferior de la lista de repositorios, haga clic en Select repositories.

      Captura de pantalla de repositorios seleccionados para esta directiva

  11. Si quieres agregar otra restricción a la directiva, haz clic en Agregar restricción y elige otra restricción. Para obtener información sobre otras restricciones, consulta:

  12. Cuando hayas terminado de agregar restricciones a la directiva, haz clic en Guardar.

La directiva se aplica cuando alguien intenta crear un nuevo codespace que se puede facturar a tu organización. La restricción de la imagen base no afecta a los codespaces existentes, ya estén activos o detenidos.

Editar una política

Puedes editar una directiva existente. Por ejemplo, puede que te interese agregar restricciones a una directiva o quitarlas.

  1. Muestra la página de "Políticas del Codespace". Para obtener más información, consulta "Adición de una directiva para definir las imágenes permitidas".
  2. Haz clic en el nombre de la política que quieres editar.
  3. Haz clic en el icono de lápiz () situado junto a la restricción "Imágenes base".
  4. Agrega o quita direcciones URL de imágenes.
  5. Haga clic en Save(Guardar).

Borrar una política

  1. Muestra la página de "Políticas del Codespace". Para obtener más información, consulta "Adición de una directiva para definir las imágenes permitidas".

  2. Haz clic en el botón de borrar a la derecha de la política que quieras borrar.

    Captura de pantalla del botón de eliminación de una directiva