Skip to main content

Introdução aos contêineres de desenvolvimento

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. Se o seu projeto não tiver um contêiner de desenvolvimento definido, Codespaces usará a configuração padrão, que contém muitas das ferramentas comuns que sua equipe pode precisar para desenvolver o seu projeto. Para obter mais informações, consulte "Usando a configuração padrão. "

Se você deseja que todos os usuários de seu projeto tenham um ambiente consistente que seja adaptado ao seu projeto, você poderá adicionar um contêiner de desenvolvimento ao seu repositório. Você pode usar uma configuração predefinida para selecionar uma configuração comum para vários tipos de projeto com a opção para personalizar ainda mais seu projeto ou você pode criar sua própria configuração personalizada. Para obter mais informações, consulte "Usando uma configuração de contêiner predefinida" e "Criando uma configuração personalizada de codespace". 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. Access the Paleta de Comando do VS Code (Shift + Command + P / Ctrl + Shift + P), then start typing "dev container". Selecione Codespaces: Adicionar arquivos de configuração de Contêiner do Desenvolvimento....

    "Codespaces: Add Development Container Configuration Files..." in the Paleta de Comando do VS Code

  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. Para obter mais informações sobre as opções para personalizar sua definição, consulte "Adicionando funcionalidades adicionais ao seu arquivo devcontainer.json".

  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". "Códigos: Recriar contêiner" em Paleta de Comando do VS Code

Adicionando funcionalidades adicionais ao arquivo devcontainer.json

Observação: Este recurso está na versão beta e sujeito a alterações.

Você pode adicionar recursos à configuração de contêiner predefinida para personalizar quais ferramentas estão disponíveis e ampliar a funcionalidade de seu espaço de trabalho sem criar uma configuração personalizada do codespace. Por exemplo, você poderia usar uma configuração de contêiner predefinida e adicionar o GitHub CLI também. Você pode criar essas funcionalidades para o seu projeto adicionando as funcionalidades ao seu arquivo devcontainer.json ao definir a configuração do seu contêiner.

Você pode adicionar algumas das características mais comuns selecionando-as na configuração do contêiner predefinido. Para obter mais informações sobre as funcionalidades disponíveis, consulte a biblioteca de script no repositório vscode-dev-containers.

O menu de seleção de funcionalidades adicionais durante a configuração do contêiner.

Você também pode adicionar ou remover funcionalidades fora do fluxo de trabalho Adicionar arquivos de configuração do contêiner de desenvolvimento.

  1. Acessar a Paleta de Comando (Shift + Comando + P / Ctrl + Shift + P) e, em seguida, comece a digitar "configurar". Selecione Codespaces: Configure as Funcionalidades do contêiner de desenvolvimento. O comando Configurar Funcionalidades do Devcontainer na paleta de comandos
  2. Atualize as seleções das suas funcioanlidades e clique em OK. O menu de seleção de funcionalidades adicionais durante a configuração do contêiner.
  3. 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. Access the Paleta de Comando do VS Code (Shift + Command + P/ Ctrl + Shift + P), then start typing "rebuild". 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.