Personalizar as configurações do projeto e do editor

Concluído

Você configurou um contêiner de desenvolvimento para um dos projetos da agência em que trabalha. Agora, ele "simplesmente funcionará" para qualquer pessoa que tenha o Docker e a extensão Dev Containers. Ainda será necessário instalar as dependências. Talvez eles precisem de extensões do Visual Studio Code que não são conhecidas.

Felizmente, é possível personalizar e automatizar toda a configuração do projeto usando o arquivo devcontainer.json.

Uma análise mais detalhada do devcontainer.json

Vamos examinar as principais opções do arquivo .devcontainer/devcontainer.json do projeto Painel de Produtos. É um pouco trabalhoso examinar tudo de uma vez, então vamos dividir as opções por seção.

Configuração de compilação

A propriedade image define como o contêiner será criado com base no que é conhecido como uma imagem de contêiner.

"image": "mcr.microsoft.com/devcontainers/python:0-3.11"
},

Essa imagem está hospedada no repositório devcontainers/images, que você pode verificar mais detalhadamente. As imagens deste repositório são todas imagens predefinidas, que agilizam seu fluxo de trabalho e simplificam a configuração do .devcontainer/devcontainer.json.

Você também pode usar arquivos conhecidos como Dockerfile ou um arquivo Docker Compose para definir sua configuração. Esses arquivos podem residir na pasta .devcontainer e permitir que você configure ainda mais determinados requisitos de instalação, como a instalação de software adicional. Veja mais informações na documentação do contêiner de desenvolvimento.

Recursos

Os Recursos do contêiner de desenvolvimento são unidades autônomas e compartilháveis de configuração do contêiner de desenvolvimento e do código de instalação. O nome vem da ideia de que referenciar um deles permite que você adicione, de forma rápida e fácil, mais ferramentas, runtime ou biblioteca de "Recursos" a seu contêiner de desenvolvimento para uso por você ou seus colaboradores.

Ao usar o comando Contêineres de Desenvolvimento: Adicionar Arquivos de Configuração de Contêiner de Desenvolvimento do VS Code, você verá uma lista de scripts para personalizar as configurações existentes de contêineres de desenvolvimento, seja para instalar o Git ou a CLI do Azure.

Configurações do projeto

Uma seção no final do arquivo trata diretamente da configuração de projeto.

customizations define propriedades específicas dos produtos que dão suporte a contêineres de desenvolvimento, como VS Code e GitHub Codespaces.

Por exemplo, você pode definir vscode.settings para copiar configurações específicas do computador para o contêiner. Talvez você tenha essas definições em sua configuração do Visual Studio Code. Ao adicioná-los ao settings, você garante que as pessoas que abrirem este projeto obtenham as configurações específicas do VS Code.

Neste contêiner Python, você pode ver essas configurações na imagem base mcr.microsoft.com/devcontainers/python:0-3.11. Eles oferecem ao usuário uma experiência de edição de Python aprimorada.

  • É possível usar a matriz extensions dentro da propriedade customizations.vscode para especificar quais extensões do Visual Studio Code devem ser instaladas quando conectar ao contêiner. A instalação normal do Visual Studio Code e todas as extensões já instaladas não estarão presentes quando você estiver usando a extensão Dev Containers. As extensões são especificadas aqui com as respectivas IDs.

postCreateCommand

A propriedade postCreateCommand permite executar todos os comandos que você quiser após a criação do contêiner. Lembre-se de que no primeiro exercício foi necessário executar o comando pip3 para instalar as dependências. Mas como você poderia saber disso? Talvez você não soubesse. É possível configurá-lo aqui para que ele seja executado automaticamente e ninguém precise se preocupar com isso.

No próximo exercício, você modificará o arquivo devcontainer.json para automatizar vários aspectos do projeto a fim de propiciar o sucesso imediato de outros desenvolvedores.