Docker与Visual Studio 17的.NET Core项目并行调试

微服务架构中,经常需要同时调试多个项目。自从Docker发布以来,基于微服务的应用开发方式发生了很大的变化。在Visual Studio 17中,可以轻松地为应用添加Docker支持。本文将展示如何在不同的Docker容器中调试两个.NET Core项目。

为什么需要并行调试

假设有一个微服务架构的应用,它包含两个项目:一个是ASP.NET MVC项目,另一个是Web API项目。MVC项目从API项目获取数据,而API项目在需要时提供数据。在开发过程中,经常需要同时调试这两个项目,以观察应用的行为。

为什么使用Docker

Docker是一个轻量级、开放且安全的开发者平台。它是一个容器化工具,经常被拿来与虚拟机比较,虚拟机消耗大量资源。但Docker为开发者提供了什么好处呢?下面这行描述了使用Docker的主要好处:

Docker提供了一种一致的方式来在不同环境中部署代码。

因此,使用Docker,可以在不同的环境上开发和运行软件,同时使用最少的计算资源。Docker可以消除应用冲突,加快软件部署速度,确保更好地利用资源等等。

什么是Docker容器

Docker自推出以来一直在改变世界,Docker容器在这个任务中扮演着非常重要的角色。Docker容器基本上是Docker镜像的实例,可以简化为:Docker容器是关于运行软件的!可以为任何特定的镜像拥有尽可能多的Docker容器。

在使用代码之前,需要确保一些事情。首先,检查是否已经安装并完美运行了Docker,以及任何版本的Visual Studio 17和.NET Core组件。

在本文中,将创建一个名为“员工考勤”的测试应用,它将显示公司员工的日常考勤数据。为此,首先将创建一个包含两个.NET Core项目的Visual Studio解决方案,一个是ASP.NET MVC,另一个是ASP.NET Web API,如下所示:

Visual Studio非常强大!它已经为在MVC项目中创建了一个控制器和一些视图,还在API项目中创建了一个控制器。让对API控制器进行一些修改,以获取员工考勤数据:

public IEnumerable<EmployeeAttendanceData> Get() { List<EmployeeAttendanceData> attendances = new List<EmployeeAttendanceData> { new EmployeeAttendanceData{ Name="Romel", LogInTime = new DateTime(2017, 6, 1, 12, 20, 0), Status="Late" }, new EmployeeAttendanceData{ Name="Ashek", LogInTime = new DateTime(2017, 6, 2, 8, 20, 0), Status="In time" }, new EmployeeAttendanceData{ Name="Hassan", LogInTime = new DateTime(2017, 6, 3, 9, 20, 0), Status="In time" }, new EmployeeAttendanceData{ Name="Chapal", LogInTime = new DateTime(2017, 6, 4, 9, 15, 0), Status="In time" }, new EmployeeAttendanceData{ Name="Maruf", LogInTime = new DateTime(2017, 6, 5, 11, 20, 0), Status="Late" } }; return attendances; }

在API控制器中创建了一个GET方法,用于提供考勤数据。注意,还创建了一个名为EmployeeAttendanceData的模型类。

从MVC控制器中,将调用API控制器的方法来获取考勤数据。让来编码:

public IActionResult Index() { ValuesController apiController = new ValuesController(); IEnumerable<EmployeeAttendanceData> attendances = apiController.Get(); ViewBag.attendances = attendances; return View(); }

在上面的动作方法中,调用了API控制器的GET方法,并将考勤数据存储在ViewBag中,之后将在视图中枚举这个集合。

可以在项目中单独添加Docker支持,也可以在解决方案文件中添加。要为每个项目添加Docker支持,右键单击项目,在“添加”菜单下,会看到添加Docker支持的选项。

必须为每个项目添加Docker支持。添加Docker支持后,将看到一个Dockerfile已经添加到项目中,这个文件有入口点、工作目录等其他信息,用于容器。同时注意,解决方案中添加了一个新的docker-compose项目,在docker-compose下有一个docker-compose.yml文件来实例化项目的Docker容器。

现在已经为项目添加了Docker支持,是时候创建项目的Docker镜像并在容器上运行它们了。使用Docker运行应用程序以创建项目的镜像并在容器上运行它们。成功创建镜像和容器后,打开Windows PowerShell并运行此命令:

docker ps

将看到当前正在运行的Docker容器,如下所示:

现在,如果在浏览器中输入这个URL地址:

http://localhost:32769/

将看到应用程序正在DockerLinux容器上运行。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485