Configurar codespaces para seu projeto

Você pode usar um arquivo devcontainer.json para definir um ambiente de Codespaces para o seu repositório.

People with write permissions to a repository can create or edit the codespace configuration.

Codespaces is available for organizations using GitHub Team or GitHub Enterprise Cloud. Para obter mais informações, consulte os "produtos do GitHub".

Sobre contêineres de desenvolvimento

Um contêiner de desenvolvimento, ou dev container, é o ambiente que Codespaces usa para fornecer as ferramentas e tempos de execução de que seu projeto precisa para desenvolvimento. When working with a dev container in Codespaces you can either use the default configuration, use a predefined configuration, or create your own configuration. A opção escolhida depende das ferramentas, tempo de execução, dependências e fluxos de trabalho que um usuário pode precisar para ter sucesso com seu projeto.

Codespaces permite a personalização em uma base por projeto e por branch com um arquivo devcontainer.json. Este arquivo de configuração determina o ambiente de cada novo codespace que alguém criar para o repositório, definindo um contêiner de desenvolvimento que pode incluir estruturas, ferramentas, extensões e encaminhamento de porta. Um arquivo Docker também pode ser usado ao lado do arquivo devcontainer.json na pasta devcontainer para definir tudo o que é necessário para criar uma imagem de contêiner.

devcontainer.json

Este arquivo pode ser localizado na raiz do repositório ou em uma pasta denominada .devcontainer. Se o arquivo estiver localizado na raiz do repositório, o nome do arquivo deve começar com um ponto: .devcontainer.json.

Você pode usar o seu devcontainer.json para definir as configurações padrão para todo o ambiente do codespace, incluindo o editor, mas você também pode definir configurações específicas do editor para áreas de trabalho individuais em um codespace em um arquivo denominado .vscode/settings.json.

Para obter informações sobre as configurações e propriedades que você pode definir em um devcontainer.json, consulte referência do devcontainer.json na documentação de Visual Studio Code.

arquivo Docker

Um arquivo Docker também mora na pasta .devcontainer.

Você pode adicionar um arquivo Docker ao seu projeto para definir uma imagem de contêiner e instalar software. No arquivo Docker, você pode usar DE para especificar a imagem do contêiner.

FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-14

# ** [Optional] Uncomment this section to install additional packages. **
# USER root
#
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
#     && apt-get -y install --no-install-recommends <your-package-list-here>
#
# USER codespace

Você pode usar a instrução EXECUTAR para instalar qualquer software e && para unir comandos.

Faça referência ao seu arquivo Docker no arquivo devcontainer.json usando a propriedade arquivo Docker.

{
  ...
  "build": { "dockerfile": "Dockerfile" },
  ...
}

Para obter mais informações sobre como usar um arquivo Docker em um contêiner de desenvolvimento, consulte Criar um contêiner de desenvolvimento na documentação de Visual Studio Code.

Usando a configuração padrão

Se você não definir uma configuração no repositório, o GitHub criará um código com uma imagem-base do Linux. A imagem de base do Linux inclui linguagens e tempos de execução como Python, Node.js, JavaScript, TypeScript, C++, Java, .NET, PHP, PowerShell, Go, Ruby e Rust. Ela também inclui outras ferramentas e utilitários para desenvolvedores como git, GitHub CLI, yarn, openssh, e vim. Para ver todas as linguagens, tempos de execução e as ferramentas que são incluídas, use o comando devcontainer-info content-url dentro do seu terminal de código e siga a url que o comando emite.

Como alternativa, para obter mais informações sobre tudo o que está incluído na imagem de base do Linux, consulte o arquivo mais recente no repositório microsoft/vscode-dev-containers.

A configuração padrão é uma boa opção se você estiver trabalhando em um pequeno projeto que usa as linguagens e ferramentas que Codespaces fornece.

Usando uma configuração de contêiner predefinida

Definições de contêiner predefinidas incluem uma configuração comum para um tipo específico de projeto e podem ajudar você rapidamente a dar os primeiros passos com uma configuração que já tem as opções de contêiner apropriadas, Visual Studio Code configurações, e extensões de Visual Studio Code que devem ser instaladas.

Usar uma configuração predefinida é uma ótima ideia se você precisa de uma extensão adicional. Você também pode começar com uma configuração predefinida e alterá-la conforme necessário para a configuração do seu projeto.

  1. Acessar a Paleta de Comando (Shift + Comando + P / Ctrl + Shift + P) e, em seguida, comece a digitar "dev container". Selecione Codespaces: Adicionar arquivos de configuração de Contêiner do Desenvolvimento....

    "Codespaces: Adicionar arquivos de configuração de Contêiner de Desenvolvimento..." na paleta de comandos

  2. Clique na definição que você deseja usar. Lista de definições de contêiner predefinidas

  3. Siga as instruções para personalizar sua definição.

  4. Clique em OK. Botão OK

  5. Para aplicar as alterações, no canto inferior direito da tela, clique em Reconstruir agora. Para obter mais informações sobre a reconstrução do seu contêiner, consulte "Aplicar alterações na sua configuração". "Codespaces: Reconstruir contêiner" na paleta de comandos

Criar uma configuração personalizada de codespace

Se nenhuma das configurações predefinidas atender às suas necessidades, você poderá criar uma configuração personalizada adicionando um arquivo devcontainer.json. Este arquivo pode ser localizado na raiz do repositório ou em uma pasta denominada .devcontainer. Se o arquivo estiver localizado na raiz do repositório, o nome do arquivo deve começar com um ponto: .devcontainer.json.

No arquivo, você pode usar chaves de configuração compatíveis para especificar aspectos do ambiente do código, como quais extensões de Visual Studio Code serão instaladas.

Ao configurar as configurações de editor para Visual Studio Code, há três escopos disponíveis: Workspace, Remote [Codespaces], e User. Se uma configuração for definida em vários escopos, as configurações do Workspace têm prioridade e, em seguida Remote [Codespaces], depois User.

Você pode definir as configurações de editor-padrão para Visual Studio Code em dois lugares.

  • As configurações do editor definidas em .vscode/settings.json são aplicadas como configurações do escopo do espaço de trabalho no codespace.
  • Configurações do editor definidas na chave Configurações no devcontainer.json são aplicadas como configuração de escopo Remote [Codespaces] nesse codespace.

Depois de atualizar o arquivo devcontainer.json, você poderá reconstruir o contêiner para o seu código aplicar as alterações. Para obter mais informações, consulte "Aplicar alterações à sua configuração".

Aplicando alterações à sua configuração

Depois da configuração de Codespaces de um repositório, é possível aplicar as alterações de um codespace existente remontando o contêiner do codespace.

  1. Acesse a paleta de comandos (Shift + Command + P/ Ctrl + Shift + P) e, em seguida, comece a digitar "recriar". Selecione Codespaces: Reconstruir Contêiner.

    Opção de reconstruir contêiner

  2. Se as alterações na configuração do seu código causarem um erro no contêiner, seu código será executado no modo de recuperação, e você verá uma mensagem de erro. Corrija os erros na configuração. Mensagem de erro sobre modo de recuperação

    • Para diagnosticar o erro revisando os registros de criação, clique em Visualizar registro de criação.
    • Para corrigir os erros identificados nos registros, atualize seu arquivo devcontainer.json..
    • Para aplicar as alterações, reconstrua seu contêiner.

Esse documento ajudou você?

Política de Privacidade

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.