Skip to main content
Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais atualizadas, acesse a documentação em inglês.

Como restringir a imagem base dos codespaces

Você pode especificar quais imagens base podem ser usadas para novos codespaces criados em sua organização.

Quem pode usar esse recurso

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

As organizações com os planos do GitHub Team e do GitHub Enterprise podem habilitar o uso do GitHub Codespaces, faturável para a organização. Depois, essas organizações podem acessar as configurações que se aplicam aos codespaces pagos pela organização. Para obter mais informações, confira "Como habilitar o GitHub Codespaces em sua organização" e "Produtos do GitHub."

Visão geral

Quando você cria um codespace, um contêiner do Docker é criado automaticamente em uma máquina virtual remota. O contêiner do Docker é criado com base em uma imagem do Docker. A imagem é efetivamente um modelo para contêineres do Docker e determina muitos aspectos do ambiente resultante fornecido pelo codespace.

Você pode escolher qual imagem deseja usar para seus codespaces especificando-a na configuração de contêiner de desenvolvimento para um repositório. Você pode fazer isso, por exemplo, usando a propriedade image no arquivo devcontainer.json.

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

Para saber mais, confira a especificação sobre contêineres de desenvolvimento no site de Contêineres de Desenvolvimento.

Se você não especificar uma imagem na configuração de contêiner de desenvolvimento para um repositório, a imagem padrão será usada. A imagem padrão contém várias versões de runtime para linguagens populares e ferramentas comumente usadas. Para obter mais informações, confira "Introdução aos contêineres de desenvolvimento".

Como proprietário de uma organização, você pode adicionar uma política para restringir quais imagens podem ser usadas para codespaces criados em sua organização.

Se a imagem especificada na configuração do contêiner de desenvolvimento não corresponder a uma das imagens permitidas, a seguinte mensagem será exibida quando alguém tentar criar um codespace para o repositório:

Não foi possível criar o codespace: a imagem base 'DETAILS FROM DEV CONTAINER CONFIGURATION' não é permitida com base em uma política da organização definida pelo administrador da organização.

Observações:

  • A política de imagem base só é aplicada quando um codespace é criado. Atualmente, ela não é aplicada quando você recompila um contêiner. Isso será alterado em uma versão futura. Para obter mais informações, confira "O ciclo de vida do codespace".
  • A política de imagem base não se aplicará à imagem padrão ou à imagem usada para recuperar um codespace se, em uma configuração de contêiner de desenvolvimento, for introduzido um erro que impeça a recriação do contêiner.

Definindo políticas específicas da organização e do repositório

Ao criar uma política, você define se ela se aplica a todos os repositórios da organização ou apenas a repositórios específicos. Se você definir uma política para toda a organização, todas as políticas que você definir para repositórios individuais devem estar dentro da restrição definida no nível da organização. A adição de políticas torna a escolha da imagem mais restritiva.

Por exemplo, você pode criar uma política em toda a organização que restringe a imagem base a qualquer uma das dez imagens especificadas. Em seguida, você pode definir uma política para o Repositório A que restringe a imagem a um subconjunto de apenas duas das imagens especificadas no nível da organização. A especificação de imagens adicionais para o Repositório A não terá efeito porque essas imagens não são especificadas na política no nível da organização. Se adicionar uma política para toda a organização, você deverá configurá-la para a maior escolha de imagens que estarão disponíveis para qualquer repositório na sua organização. Em seguida, você pode adicionar políticas específicas ao repositório para restringir ainda mais a escolha.

Observação: as políticas de codespace só se aplicam aos que são cobrados na organização. Se um usuário individual criar um codespace para um repositório em sua organização e a organização não for cobrada, o codespace não será associado a essas políticas. Para obter informações sobre como escolher quem pode criar codespaces que são cobrados da sua organização, confira "Como habilitar o GitHub Codespaces em sua organização".

Adicionando uma política para definir as imagens permitidas

  1. No canto superior direito do GitHub.com, clique na foto do seu perfil e clique em Suas organizações.

    Captura de tela do menu suspenso na imagem de perfil do @octocat. "Suas organizações" está contornado em laranja escuro. 2. Ao lado da organização, clique em Configurações.

    Captura de tela da organização "octo-org" com o botão "Configurações" realçado com uma estrutura de tópicos laranja escuro. 1. Na seção "Código, planejamento e automação" da barra lateral, selecione Codespaces e clique em Políticas.

  2. Na página "Políticas de codespace", clique em Criar Política.

  3. Insira um nome para sua nova política.

  4. Clique em Adicionar restrição e escolha Imagens base.

  5. Clique em para editar a restrição.

  6. No campo "Valores permitidos", insira a URL completa de uma imagem que você deseja permitir.

    Captura de tela da URL "mcr.microsoft.com/vscode/devcontainers/java" inserida no campo "Valores permitidos".

    Observação: você precisa especificar uma URL de imagem que corresponda exatamente ao valor especificado em uma configuração de contêiner de desenvolvimento.

  7. Clique em para adicionar o valor.

  8. Se necessário, repita as duas etapas anteriores para adicionar mais URLs de imagem.

  9. Clique fora da caixa de diálogo para fechá-la.

  10. Por padrão, a política é definida para ser aplicada a todos os repositórios. Se você quiser que ela se aplique somente a alguns dos repositórios na sua organização, clique em Todos os repositórios e em Repositórios selecionados no menu suspenso.

    Captura de tela do menu suspenso de seleção de repositório, mostrando as opções "Todos os repositórios" e "Repositórios selecionados".

    Com a opção Repositórios selecionados marcada:

    1. Clique em .

      Captura de tela do ícone de configurações (um símbolo de engrenagem) à esquerda de um botão denominado "Repositórios selecionados".

    2. Selecione os repositórios aos quais você quer que esta política seja aplicada.

    3. Na parte inferior da lista de repositórios, clique em Selecionar repositórios.

      Captura de tela de uma lista de repositórios, cada um com uma caixa de seleção. Três repositórios são selecionados.

  11. Para adicionar outra restrição à política, clique em Adicionar restrição e escolha outra restrição. Para obter informações sobre outras restrições, confira:

  12. Depois de concluir a adição de restrições à política, clique em Salvar.

A política é aplicada quando qualquer pessoa tenta criar um codespace que pode ser cobrado para sua organização. A restrição de imagem base não afeta os codespaces existentes, ativos ou parados.

Editando uma política

Você pode excluir ou editar uma política existente. Por exemplo, você talvez queira adicionar restrições a ou removê-las de uma política.

  1. Exibir a página "Políticas de codespaces". Para obter mais informações, confira "Como adicionar uma política para definir as imagens permitidas".
  2. Clique no nome da política que você deseja editar.
  3. Ao lado da restrição "Base de imagens", clique em .
  4. Adicione ou remova URLs de imagem.
  5. Clique em Save (Salvar).

Excluindo uma política

  1. Exibir a página "Políticas de codespaces". Para obter mais informações, confira "Como adicionar uma política para definir as imagens permitidas".

  2. Clique no botão excluir à direita da política que você deseja excluir.

    Captura de tela de uma política com o botão Excluir (um ícone de lixeira) realçado com uma estrutura de tópicos laranja escura.