Visual Studio Code でビルドとデバッグにコンテナーを使用する
アプリケーション開発に Visual Studio Code を使用する場合は、コンテナー内にビルドされるようにプロジェクトを設定できます。 その後、コンテナー内で直接ビルドおよびデバッグできます。 このトピックでは、.vscode ディレクトリが存在し、launch.json と settings.json の 2 つのファイルが含まれるように、Visual Studio Code を使用してプロジェクトを作成していることを前提としています。
このトピックでは、コンテナーをローカルで使用する方法について説明します。 ビルドとデバッグに GitHub Codespaces を使用 する : GitHub Codespaces を使用して、Azure Sphere アプリを編集、ビルド、デプロイ、デバッグする方法について説明します。
.devcontainer フォルダーを設定する
プロジェクトの最上位ディレクトリで、.devcontainer という名前のフォルダーを作成します。 このフォルダーで、devcontainer.json という名前のファイルを次の内容で作成します。
{
"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"
]
}
次に、次の内容を含む Dockerfile という名前のファイルを .devcontainer フォルダーに作成します。
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" ]
最初 FROM
の行では、基本開発コンテナーとして標準の Azure Sphere Docker イメージを指定し、2 番目の行では、その基本コンテナーをビルド環境として使用することを示します。 行は COPY
、リポジトリの内容をコンテナーの /src/ ディレクトリにコピーします。 は WORKDIR
、ビルド ディレクトリを指定します。 このコマンドは RUN
、ビルド ファイルを生成する CMake コマンドを提供します。 最後に、 は ENTRYPOINT
、実際にアプリケーションをビルドするために ninja を呼び出す必要があることを指定します。
プロジェクトをビルドしてデバッグする
Visual Studio Code でプロジェクト フォルダーを開きます。 Visual Studio Code によって新しいファイルが検出され、"フォルダーには Dev Container 構成ファイルが含まれています" というメッセージ ボックスが開きます。 フォルダーに再度開き、コンテナー内で開発します。[コンテナーで再度開く] ボタンを選択して、.devcontainer/Dockerfile ファイルによって作成されたコンテナー内のフォルダーを再度開きます。 Visual Studio Code のタイトル バーが変更され、コンテナー内で編集中であることを示します。 左側のナビゲーション バーで [拡張機能] タブを開くと、ローカルにインストールされている拡張機能とコンテナーにインストールされている拡張機能の両方が表示されます。
F5 キーを押してプロジェクトをビルドし、デバッグを開始します。 アプリケーションがビルドされ、通常どおりデバイスにサイドロードされます。 コードにブレークポイントを設定した場合、ブレークポイントに到達するまでアプリが実行されます。 通常のデバッグ コマンドを使用して、コードを確認できます。 詳細については、Visual Studio Code ドキュメントの 「デバッグ 」トピックを参照してください。
デバッグが完了したら、Shift キーを押しながら F5 キーを押すか、停止アイコンを押します。 コンテナーを閉じるには、Visual Studio Code ツール バーの [リモート] メニューから [リモート接続を閉じる] コマンドを使用します。