使用 Visual Studio Code Docker 工具调试 .NET 容器

这篇具有很好参考价值的文章主要介绍了使用 Visual Studio Code Docker 工具调试 .NET 容器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:Chet Husk
排版:Alan Wang

Visual Studio Code Docker 工具已发布1.26.0版本,这个版本为使用 .NET SDK 构建和调试容器映像提供了内置支持。

VS Code 中的 Docker 调试

Visual Studio Code Docker 工具使开发人员可以轻松入门容器。它提供了 Dockerfile 模板,用于构建、运行和调试从 Dockerfile 生成的容器的集成,并提供编辑器内对许多其他 Docker 和容器相关工具的访问。您可以在 Visual Studio Marketplace 中了解有关此工具的更多信息。

以前,Docker 工具提供了为 .NET 项目搭建 Dockerfile 的能力。Dockerfile 大致如下所示:

FROM mcr.microsoft.com/dotnet/runtime:8.0-preview AS base
WORKDIR /app

USER app
FROM mcr.microsoft.com/dotnet/sdk:8.0-preview AS build
ARG configuration=Release
WORKDIR /src
COPY ["MinimalApiSharp.csproj", "./"]
RUN dotnet restore "MinimalApiSharp.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "MinimalApiSharp.csproj" -c $configuration -o /app/build

FROM build AS publish
ARG configuration=Release
RUN dotnet publish "MinimalApiSharp.csproj" -c $configuration -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MinimalApiSharp.dll"]

这为构建高效容器映像奠定了良好的基础,但还有很多开箱即用的东西需要理解。用户面临着了解多阶段 Dockerfile、容器构建参数,以及确保构建和发布输出的路径在各个阶段保持一致的问题。

使用 .NET SDK 构建容器

从 .NET 7 开始,.NET SDK 能够通过 dotnet publish 轻松创建容器映像。 使用单个 PackageReference(如果您使用 7.0.300 或更高版本的 SDK,则不需要任何软件包!),
dotnetpublish -p PublishProfile=DefaultContainer 命令会为您的应用程序生成一个工作容器映像。它具有开箱即用的安全默认设置,并允许用户自定义生成容器的所有方面。

然而,将这些生成的容器集成到工具中一直存在障碍。Visual Studio Code 新版本的 Docker 工具弥补了这一点,通过 Visual Studio Code 中的启动配置机制,对容器化应用程序进行调试变得轻而易举。

将其结合

让我们看看如何在 VSCode 中将 SDK 工具和 Docker 工具结合在一起。

首先,使用 .NET SDK 创建一个新的 Web 项目并在 Visual Studio Code 中打开它。我将在这里使用 .NET 8 preveiw 6 SDK。

> dotnet new web -n MyContainerizedApp
The template "ASP.NET Core Empty" was created successfully.

Processing post-creation actions...
Restoring D:\Code\Scratch\MyContainerizedApp\MyContainerizedApp.csproj:
Restore complete (1.0s)

Build succeeded in 1.4s
Restore succeeded.
> cd MyContainerizedApp
> code .

编辑器启动后,您应该可以按 F5(或您绑定到
workbench.action.debug.start 命令的任何组合键)获得一个选择菜单,如下所示:
使用 Visual Studio Code Docker 工具调试 .NET 容器,vscode,docker,.net

此菜单上要查找的关键项是 Docker: Debug in Container。此启动方法会将您的应用程序构建到容器中,然后自动启动带有附加调试工具的容器! 如果您从此菜单中选择它,您将看到另一个重要选项:
使用 Visual Studio Code Docker 工具调试 .NET 容器,vscode,docker,.net
这就是与 .NET SDK 的全新整合。如果您在此处选择“Use a Dockerfile”,那么您可以根据仓库中的 Dockerfile 使用 Docker 来构建容器。但如果您选择新的“Use .NET SDK”选项,则 .NET SDK 中的内置容器化工具将用于构建容器,然后 Docker 将用于运行和调试该容器。

一旦选择“Use .NET SDK”选项,您应该会看到构建容器的工具。它将出现在任务终端中(通常位于编辑器窗口的底部),看起来像这样:

* Executing task: dotnet-container-sdk: debug

> dotnet publish --os "linux" --arch "x64" -p: PublishProfile=Defau1tContainer --configuration "Debug" -p:ContainerImageTag=dev
<

MSBui1d version 17.7.0+5785ed5c2 for .NET
 Determining projects to restore...
 Restored d:\Code\Scratch\MyContainerizedApp\MyContainerizedApp.csproj (in 2.03 sec).
C:\Progran Files\dotnet\sdk\8.0.100-preview.6.23330.14\Sdks\microsoft.NET.sdk\targets\microsoft.NET.Runtimeldentifierlnference.
targets(314,5): message NETSDK1057: You are using a preview version of .NET. 
  See: https://aka.ms/dotnet-support-policy [d:\Code\Scratch\MyContainerizedApp\MyContainerizedApp.csproj]
  MyContainerizedApp -> d:\Code\Scratch\MyContainerizedApp\bin\Debug\net8.0\linux-x64\MyContainerizedApp.dll
  MyContainerizedApp -> d:\Code\Scratch\MyContainerizedApp\bin\Debug\net8.0\linux-x64\publish\
  Building image 'mycontainerizedapp' with tags dev on top of base image mcr.microsoft.com/dotnet/aspnet:8.0.0-preview.6

终端输出显示了一些有趣的内容:用于构建容器的 dotnet publish 命令,以及 MSBuild 输出详细说明了应用程序容器的创建过程。
经过短暂的容器构建,VSCode Docker 工具将启动生成的容器,并另外打开一个指向新启动的应用程序的浏览器窗口:
使用 Visual Studio Code Docker 工具调试 .NET 容器,vscode,docker,.net
这非常简单,从这里开始,您可以使用 Visual Studio Code Docker 工具的所有现有功能来与正在运行的容器进行交互。

下一步计划?

这只是 Visual Studio Code Docker 工具和 .NET SDK 集成的开端。

未来 SDK 容器工具的增强功能将允许自动映射 SDK 生成的容器中的端口,并且 SDK 容器团队正在考虑深化与 Docker 的集成,以便更轻松地使用 Docker Compose。

我们希望您尝试使用 .NET SDK 来容器化您的应用程序!您可以详细了解如何使用 dotnetpublish 容器化 .NET 应用程序,然后了解如何自定义生成的容器。

请尝试一下 Visual Studio Code的 Docker 扩展的新功能,让我们知道您的想法,如果您对 .NET SDK 容器工具有反馈,请务必访问 repo 并开始讨论!文章来源地址https://www.toymoban.com/news/detail-654467.html

到了这里,关于使用 Visual Studio Code Docker 工具调试 .NET 容器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Visual Studio Code远程开发、调试Linux C

    在嵌入式和服务器端程序开发中,Linux是主流的开发、运行平台,但直接在这些平台上进行代码开发在很多情况下很繁琐(只能使用文本字符进行编辑,很多嵌入式Linxu系统不提供图形界面环境,工作难度极大,效率极其低下),一般情况是在Windows或MacOS上编写代码,在目标主

    2024年02月14日
    浏览(51)
  • 为 Microsoft C++ 配置 VS Code在本教程中,您将配置 Visual Studio Code 以在 Windows 上使用 Microsoft Visual C++ 编译器和调试器

    在本教程中,您将配置 Visual Studio Code 以在 Windows 上使用 Microsoft Visual C++ 编译器和调试器。 配置完 VS Code 后,你将在 VS Code 中编译和调试一个简单的 Hello World 程序。本教程不教您有关 Microsoft C++ 工具集或 C++ 语言的详细信息。对于这些主题,网上有很多很好的资源。 如果您

    2024年02月10日
    浏览(63)
  • Visual Studio Code调试C语言代码

    VS Code运行代码老是报错: 点击左边或者右上角的运行按钮报错 Visual Studio Code launch: program ‘输入程序名称,例如D:2022-2023学年学习资料2学期嵌入式系 统应用与开发课程设计shella.exe’ does not exist 打开\\\"aunch.json”| 解决方法 其实就是运行操作不对,点击代码中间-右键-Run Cod

    2024年02月16日
    浏览(48)
  • Visual Studio 远程调试工具(Remote Debugger)使用方法

    一、关于Remote Debugger 当项目在测试环境上有bug,需要运行代码调试一下,这时就需要在测试环境上安装一个调试工具(Remote Debugger),然后在本地运行代码,远程链接到测试环境服务器来调试代码;如桌面应用程序和Web应用程序。 二、下载 下载地址:远程调试 - Visual Studi

    2024年02月12日
    浏览(43)
  • Python程序员Visual Studio Code指南5调试

    当运行程序时终端输出错误时,可以参考编辑器中的\\\"问题\\\"面板来解决遇到的问题。不过,并非所有错误都会导致错误。可能出现的情况是,程序执行成功,但输出结果与预期不同。出现这种情况时,下一步就是找出程序中的错误。这个过程被称为调试。 您可以尝试通过注释

    2024年04月12日
    浏览(54)
  • Visual Studio Code(VSCode) 编辑/编译/调试 C++ 代码

    最近想要切换编辑工具,之前工作中使用过 Source Insight,Eclipse,CLion 来写 C++ 代码。目前来说 Source Insight 已经非常古老,只有编写代码还说得过去,编译、调试方面都不行。Eclipse 使用的时间最长,相对来说也比较好用,但是对于 C++11 之后的 C++ 代码实际上支持的并不友好。

    2024年02月03日
    浏览(149)
  • android 如何分析应用的内存(十五)——Visual Studio Code 调试Android应用

    在上一篇文章介绍了jdb调试java应用 接下来介绍用UI界面调试java应用,达到同jdb一样的效果。 同样的UI界面有很多选择,如Eclipse,Android Studio,Visual Studio Code.因为Android Studio的诸多不便,结合自身的使用习惯,这里推荐并介绍Visual Studio Code 安装必要的插件 在插件市场中,搜索

    2024年02月14日
    浏览(43)
  • 【工具】使用VS Code调试Docker Container中的代码

    在用这个方法时踩到了一些坑,一度搞得我很无奈。后面解决的方法也有点莫名其妙。下面详细叙述下。 Step 1 首先创建docker container,这里我是用命令行创建的。然后运行autoware提供的 /docker/generic/ 下的 run.sh ,即会自动创建docker container并进入到container中。此时docker --version为

    2024年02月01日
    浏览(83)
  • 【Python编程工具】【ssh连接Docker容器】如何使用Docker容器里的python环境,如何调试在容器中的代码

    本篇博客将介绍如何在Docker容器中打开SSH连接服务,以及如何使用JetBrains Gateway软件进行代码调试。 JetBrains Gateway是一款紧凑型桌面应用,可让您通过 JetBrains IDE 远程工作,甚至无需下载这些IDE。通过在桌面端安装这款软件,您可以直接调试服务器上的代码。 使用以下命令启

    2024年01月25日
    浏览(59)
  • Unity和Visual studio开发调试环境配置-工具插件安装和配置

    在Unity开发中,常用C#脚本进行功能开发,需要用到Visual Studio进行开发和调试,需要分别在Unity3d和Visual Studio中安装插件和工具才能更好的进行开发和调试。 visual studio中“工具”→“获取工具和功能”,打开visual studio安装程序 安装Unity开发相关的内容,如下选择,主要就是“

    2024年02月04日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包