コンテナー ボリューム マッピングをカスタマイズする
デバッグをコンテナーで機能させるために、Visual Studio では、ボリューム マッピングを使用してホスト マシンからデバッガーと NuGet フォルダーをマップします。 ボリューム マッピングの詳細については、Docker のドキュメント (こちら) を参照してください。 コンテナーのボリューム マッピングを表示するには、Visual Studio の [コンテナー] ウィンドウを使用します。
前提条件
- Docker Desktop
- Visual Studio 2019 以降 (Web 開発、Azure Tools ワークロード、.NET デスクトップ開発ワークロードのいずれかまたはすべてをインストール)
Visual Studio コンテナー イメージでのボリューム マウント
コンテナーにマウントされるボリュームは次のとおりです。
ボリューム | 説明 |
---|---|
アプリ フォルダー | Dockerfile が配置されているプロジェクト フォルダーが含まれています。 |
NuGet パッケージのフォルダー | プロジェクトの obj{project}.csproj.nuget.g.props ファイルから読み取る NuGet パッケージとフォールバック フォルダーが含まれています。 |
リモート デバッガー | プロジェクトの種類に応じて、コンテナーでデバッガーを実行するために必要なビットが含まれています。 「デバッグ用にコンテナー イメージをカスタマイズする」を参照してください。 |
ソース フォルダー | Docker コマンドに渡されるビルド コンテキストが含まれています。 |
コンテナーにマウントされるボリュームは次のとおりです。 コンテナーに表示される内容は、使用している Visual Studio 2022 のマイナー バージョンによって異なる場合があります。
体積 | 説明 |
---|---|
アプリ フォルダー | Dockerfile が配置されているプロジェクト フォルダーが含まれています。 |
NuGet パッケージのフォルダー | プロジェクトの obj{project}.csproj.nuget.g.props ファイルから読み取る NuGet パッケージとフォールバック フォルダーが含まれています。 |
リモート デバッガー | プロジェクトの種類に応じて、コンテナーでデバッガーを実行するために必要なビットが含まれています。 詳細については、「デバッグ用にコンテナー イメージをカスタマイズする」を参照してください。 |
ソース フォルダー | Docker コマンドに渡されるビルド コンテキストが含まれています。 |
VSTools | デバッガー、コンテナー ウィンドウ、Azure トークンの処理、ホット リロード エージェント、Distroless Helper のサポートなど、コンテナーの操作をサポートする Visual Studio ツールが含まれています。 |
.NET 8 では、ユーザー シークレットと HTTPS 証明書が含まれる、アプリ ユーザー用の追加のマウント ポイントがルートに存在する場合があります。
Note
Visual Studio 17.10 Docker Desktop を使用せずに Linux 用 Windows サブシステム (WSL) で Docker Engine を使用している場合は、ボリューム マウントの作成時に Visual Studio が WSL パスを使用するように環境変数 VSCT_WslDaemon=1
を設定します。 NuGet パッケージ Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Preview 1 も必要です。
ASP.NET Core Web アプリの場合、SSL 証明書とユーザー シークレット用の 2 つの追加フォルダーが存在する可能性があります。詳細については、「コンテナー化された ASP.NET Core アプリに SSL を使用する」を参照してください。
コンテナー ボリュームをマウントする
docker run
コマンド ライン引数を使用すると、別のボリュームをマウントできます。
コンテナー化されたプロジェクトのプロジェクト ファイルを開きます。
新しいコマンド ライン引数を指定するには、MSBuild プロパティ
DockerfileRunArguments
を追加し、-v
または--mount
構文を指定します。 たとえば次の構文では、ボリュームmyvolume
を作成し、フォルダー/scratch
内のコンテナーにマウントします。<PropertyGroup> <DockerfileRunArguments>-v myvolume:/scratch</DockerfileRunArguments> </PropertyGroup>
-v または --mount オプションのコマンドライン構文については、Docker のドキュメントを参照してください。