Usar contêineres para build e depuração com o Visual Studio Code
Importante
Esta é a documentação do Azure Sphere (herdado). O Azure Sphere (herdado) será desativado em 27 de setembro de 2027 e os usuários devem migrar para o Azure Sphere (integrado) até esse momento. Use o seletor de versão localizado acima do sumário para exibir a documentação do Azure Sphere (Integrado).
Se você usar o Visual Studio Code para desenvolvimento de aplicativos, poderá configurar seu projeto para que ele seja compilado dentro de um contêiner. Em seguida, você pode criar e depurar diretamente no contêiner. Este tópico pressupõe que você tenha criado um projeto com o Visual Studio Code para que o diretório .vscode exista e tenha os dois arquivos launch.json e settings.json.
Este tópico discute o uso de contêineres localmente; Usar GitHub Codespaces para build e depuração descreve o uso do GitHub Codespaces para editar, compilar, implantar e depurar seus aplicativos do Azure Sphere.
Configurar a pasta .devcontainer
No diretório de nível superior do projeto, crie uma pasta chamada .devcontainer. Nessa pasta, crie um arquivo chamado devcontainer.json com o seguinte conteúdo:
{
"name": "Azure Sphere Blink",
"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"],
"build": {
"dockerfile": "Dockerfile",
"target": "dev"
},
// Use 'settings' to set *default* container specific settings.json values on container create.
// You can edit these settings after create using File > Preferences > Settings > Remote.
"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
},
// Use 'appPort' to create a container with published ports. If the port isn't working, be sure
// your server accepts connections from all interfaces (0.0.0.0 or '*'), not just localhost.
// "appPort": [],
// Uncomment the next line to run commands after the container is created.
// "postCreateCommand": "gcc -v",
// Comment out the next line if you want to run as root instead
"remoteUser": "vscode",
// Add the IDs of extensions you want installed when the container is created in the array below.
"extensions": [
"ms-vscode.cpptools",
"ms-vscode.azure-sphere-tools",
"ms-vscode.azure-sphere-tools-ui"
]
}
Em seguida, crie um arquivo chamado Dockerfile na pasta .devcontainer com o seguinte conteúdo:
FROM mcr.microsoft.com/azurespheresdk:latest AS dev
FROM dev AS build
COPY ./ /src/
WORKDIR /out
RUN cmake -G "Ninja" -DCMAKE_TOOLCHAIN_FILE="/opt/azurespheresdk/CMakeFiles/AzureSphereToolchain.cmake" \
-DAZURE_SPHERE_TARGET_API_SET="latest-lts" -DCMAKE_BUILD_TYPE="Release" "/src"
ENTRYPOINT [ "ninja" ]
A linha inicial FROM
especifica a imagem padrão do Docker do Azure Sphere como o contêiner de desenvolvimento base e a segunda diz para usar esse contêiner base como o ambiente de build. A COPY
linha copia o conteúdo do repositório para o diretório /src/ do contêiner. O WORKDIR
especifica o diretório de compilação. O RUN
comando fornece o comando CMake para gerar os arquivos de compilação. Por fim, o especifica que ninja ENTRYPOINT
deve ser invocado para realmente construir o aplicativo.
Compilar e depurar o projeto
Abra a pasta do projeto no Visual Studio Code. O Visual Studio Code detecta os novos arquivos e abre uma caixa de mensagem dizendo "A pasta contém um arquivo de configuração do Contêiner de Desenvolvimento. Reabra a pasta para desenvolver em um contêiner." Selecione o botão Reabrir no Contêiner para reabrir a pasta no contêiner criado pelo arquivo .devcontainer/Dockerfile. A barra de título no Visual Studio Code é alterada para mostrar que você está editando em um contêiner. Se você abrir a guia Extensões na barra de navegação esquerda, verá as extensões instaladas localmente e as instaladas no contêiner.
Pressione F5 para criar seu projeto e iniciar a depuração. Seu aplicativo é compilado e carregado lateralmente em seu dispositivo como de costume. Se você tiver definido um ponto de interrupção em seu código, o aplicativo será executado até que o ponto de interrupção seja atingido. Você pode usar os comandos de depuração usuais para percorrer seu código. Consulte o tópico Depuração na documentação do Visual Studio Code para obter mais detalhes.
Quando terminar de depurar, pressione Shift+F5 ou o ícone Parar. Para fechar o contêiner, use o comando Fechar Conexão Remota no menu Remoto na barra de ferramentas do Visual Studio Code.