Personalizar as configurações do projeto e do editor
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 propriedadecustomizations.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.