 Hi, my name is Steve Smith, aka Ardalis. In this video, we're going to show how to deploy the eShop on web reference application to Docker on a Mac computer using Visual Studio for Mac. The first thing you'll need is to make sure that you have Docker desktop for Mac installed on your machine. If you don't, go to the docs.docker.com site and follow the instructions there to download it. Next, if you haven't already, make sure that you've downloaded or cloned the eShop on web reference application from its location here on GitHub. Then open it in Visual Studio for Mac. Visual Studio for Mac has support built in for working with Docker in its solutions. To add Docker support to one of your solutions, just right-click on one of your web projects and choose Add. And then choose the Add Docker Support option at the bottom of the menu. For the eShop on web reference application, this has already been done for you. When you perform this operation, what Visual Studio for Mac does is it adds an additional project, which is this Docker compose project, as well as a Docker file in the project that you specified. Let's go over what these look like. Inside the web project, you'll find a Docker file that specifies how we are going to build and run this application using a Docker container. This Docker file specifies that it's going to use the Microsoft.NET 2.2 SDK container as the basis for a build image. It's going to then copy the solution folder and all the contents of the application into the container, run.NET restore, and then publish the application. Then it's going to use a separate smaller container, which is the ASP.NET Core runtime for .NET 2.2. And it's going to copy from the published output of the first container into this new container. That's what will then be run when this Docker file executes. Inside the Docker compose project, you'll find a Docker compose YAML file. This Docker compose YAML file specifies just one service, which in this case is the eShop web MVC service. And it in turn references the Docker file found inside that web project, located at source slash web slash Docker file. In addition to the root Docker compose YAML file, there is also an override file that allows us to specify additional options. Looking at this override file, you can see that we're going to set several environment variables, the most important of which being the ASP.NET Core environment, which we're going to set to development mode. This will allow the application to run using an in-memory database instead of requiring a separate SQL server database. We also specify the ports that we want to use for both unsecure HTTP and SSL HTTPS traffic inside this section. Finally, we reference a couple of different volumes that we want to set. With all this in place, we can run our application using Docker by simply right clicking on Docker compose and specifying that we want it to be our startup project. You'll see that this changes the default options here at the top of the screen so that now when we click the play icon to run the application, it will actually run using Docker compose. In addition to supporting Docker just for running applications, Visual Studio for Mac also supports debugging into our Docker-based application. So here you can see that after I hit play, I've actually hit the first breakpoint that I had specified. Let me clear these and continue running. And now the application is running on port 5443, which is the port that we set for secure access to our Docker container. The application behaves just as it would if we were running it locally. We can view our running Docker containers from the command line by running a command like Docker PS. Here we can see that we have our eShop Web MVC application running, and it's been up for about a minute now. And it's listening on port 5106 and 5443. One issue you may encounter when you first perform this operation and you try and run the application in Docker from Visual Studio for Mac is an error that has to do with access to a NuGet folder. If you see that error, you need to map a folder to Docker. So right click on Docker, specify preferences, and then go to the File Sharing tab. Hit the plus icon to add another path and add the path that you can see here. Slash user slash local slash share slash dot net slash SDK slash NuGet fallback folder. Note that this most likely needs to be case sensitive, so watch the capitalization of NuGet fallback folder. Once you have this in place, you should be able to reset Docker, and then you should be able to run things successfully. That's all there is to it to run your application in a Docker container using Visual Studio for Mac. I hope you enjoyed this video, and please check out the other videos in the documentation to show you how to really get the most out of this eShop on Web reference application. Thanks.