This blog shows how to setup a basic ASP.NET Core 1.1 application using Visual studio 2017 and Docker.
Code: https://github.com/damienbod/AspNetCoreVS2017Docker
This article from Swaminathan Vetri demonstates how to setup everything for an ASP.NET Core 1.0 application.
Now the application needs to be updated to ASP.NET Core 1.1. Open the csproj file and update the PackageReference and also the TargetFramework to the 1.1 packages and target. At present, there is no help when updating the packages, like the project.json file had, so you need to know exactly what packages to use when updating directly.
<Project ToolsVersion="15.0" Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp1.1</TargetFramework> <PreserveCompilationContext>true</PreserveCompilationContext> </PropertyGroup> <ItemGroup> <Folder Include="wwwroot\" /> </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.NETCore.App" Version="1.1.0" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.0" /> <PackageReference Include="Microsoft.AspNetCore.Routing" Version="1.1.0" /> <PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="1.1.0" /> <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Logging" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="1.1.0" /> </ItemGroup> <ItemGroup> <Content Update=".dockerignore"> <DependentUpon>Dockerfile</DependentUpon> </Content> <Content Update="docker-compose.override.yml"> <DependentUpon>docker-compose.yml</DependentUpon> </Content> <Content Update="docker-compose.vs.debug.yml"> <DependentUpon>docker-compose.yml</DependentUpon> </Content> <Content Update="docker-compose.vs.release.yml"> <DependentUpon>docker-compose.yml</DependentUpon> </Content> </ItemGroup> </Project>
Then update the docker-compose.ci.build.yml file. You need to select the required image which can be found on Docker Hub. The microsoft/aspnetcore-build:1.1.0-msbuild image is used here.
version: '2' services: ci-build: image: microsoft/aspnetcore-build:1.1.0-msbuild volumes: - .:/src working_dir: /src command: /bin/bash -c "dotnet restore && dotnet publish -c Release -o ./bin/Release/PublishOutput"
Now update the DockerFile to target the 1.1.0 version.
FROM microsoft/aspnetcore:1.1.0 ARG source WORKDIR /app EXPOSE 80 COPY ${source:-bin/Release/PublishOutput} . ENTRYPOINT ["dotnet", "AspNetCoreVS2017Docker.dll"]
Start the application using Docker. You can debug the application which is running inside Docker, all in Visual Studio 2017. Very neat.
Notes:
When setting up Docker, you need to share the C drive in Docker.
Links:
Debugging Asp.Net core apps running in Docker Containers using VS 2017
https://www.sesispla.net/blog/language/en/2016/05/running-asp-net-core-1-0-rc2-in-docker/
https://hub.docker.com/r/microsoft/aspnetcore-build/tags/
https://blogs.msdn.microsoft.com/webdev/2016/11/16/new-docker-tools-for-visual-studio/
https://blogs.msdn.microsoft.com/stevelasker/2016/06/14/configuring-docker-for-windows-volumes/
