First, I was learning how to work with Docker from the command line.
Then, wanted to see what I could do with Visual Studio.
My goal is to use Visual Studio 2017 to create an ASP.NET Core web API and develop, debug, test and deploy that web API using containers.
The solution has two projects: one is the usual ASP.NET Core project and the other is one called Docker Compose:
As you can see, it's the same Program.cs and Startup.cs that you can see in any other ASP.NET Core application, the same type of controller, so there's nothing in the C# code that knows anything about Docker or containers or the operating environment that it's going to be in.
The only thing Docker related about this particular project, is the presence of a Docker file (you can see it opened in the image with the instructions to build another image).
The particular image is going to be a Linux image. So, one thing I needed to do was going to Docker menu and switch to Linux containers:
Steps to reproduce the issue
- Launch VS2017
- Create a new project, C#, ASP.NET Core Web Application (enabling Docker support)
- Run and debug using Docker (F5)
Expected behavior
Application runs and allows its debugging.
Actual behavior
Build fails due to error:
1>------ Build started: Project: docker-compose, Configuration: Debug Any CPU ------
1>docker-compose -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.yml" -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.override.yml" -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.vs.debug.yml" -p dockercompose1712142422 config
1>services:
1> pswebapi:
1> build:
1> args:
1> source: obj/Docker/empty/
1> context: C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\PsWebApi
1> dockerfile: Dockerfile
1> entrypoint: tail -f /dev/null
1> environment:
1> ASPNETCORE_ENVIRONMENT: Development
1> DOTNET_USE_POLLING_FILE_WATCHER: '1'
1> image: pswebapi:dev
1> labels:
1> com.microsoft.visualstudio.targetoperatingsystem: linux
1> ports:
1> - 80/tcp
1> volumes:
1> - C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\PsWebApi:/app:rw
1> - C:\Users\tiagoperes\clrdbg:/clrdbg:ro
1> - C:\Users\tiagoperes\.nuget\packages:/root/.nuget/packages:ro
1>version: '2.0'
1>docker ps --filter "status=running" --filter "name=dockercompose1712142422_pswebapi_" --format {{.ID}} -n 1
1>PsWebApi -> C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\PsWebApi\bin\Debug\netcoreapp1.1\PsWebApi.dll
1>C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -NoProfile -WindowStyle Hidden -ExecutionPolicy RemoteSigned -File "C:\Users\tiagoperes\AppData\Local\Temp\GetVsDbg.ps1" -Version vs2017u1 -RuntimeID debian.8-x64 -InstallPath "C:\Users\tiagoperes\clrdbg\vsdbg"
1>Info: Using vsdbg version '15.1.10630.1'
1>Info: Using Runtime ID 'linux-x64'
1>Info: Latest version of VsDbg is present. Skipping downloads
1>docker-compose -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.yml" -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.override.yml" -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.vs.release.yml" -p dockercompose1712142422 kill
1>docker-compose -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.yml" -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.override.yml" -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.vs.release.yml" -p dockercompose1712142422 down --rmi local --remove-orphans
1>Removing dockercompose1712142422_pswebapi_1 ...
1>[1A[2K
1>Removing dockercompose1712142422_pswebapi_1 ... [32mdone[0m
1>[1BRemoving network dockercompose1712142422_default
1>docker-compose -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.yml" -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.override.yml" -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.vs.debug.yml" -p dockercompose1712142422 kill
1>docker-compose -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.yml" -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.override.yml" -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.vs.debug.yml" -p dockercompose1712142422 down --rmi local --remove-orphans
1>Removing network dockercompose1712142422_default
1>Network dockercompose1712142422_default not found.
1>docker-compose -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.yml" -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.override.yml" -f "C:\Users\tiagoperes\Documents\Visual Studio 2017\Projects\PsWebApi\docker-compose.vs.debug.yml" -p dockercompose1712142422 up -d --build
1>Creating network "dockercompose1712142422_default" with the default driver
1>Building pswebapi
1>Step 1/6 : FROM microsoft/aspnetcore:1.1
1> ---> c87149836213
1>Step 2/6 : ARG source
1> ---> Using cache
1> ---> f48760163a33
1>Step 3/6 : WORKDIR /app
1> ---> Using cache
1> ---> cb7ee352c5c5
1>Step 4/6 : EXPOSE 80
1> ---> Using cache
1> ---> fc3d1d4fcfb5
1>Step 5/6 : COPY ${source:-obj/Docker/publish} .
1> ---> Using cache
1> ---> b6ef96f437c0
1>Step 6/6 : ENTRYPOINT dotnet PsWebApi.dll
1> ---> Using cache
1> ---> 0fdc28e1982b
1>Successfully built 0fdc28e1982b
1>Successfully tagged pswebapi:dev
1>Creating dockercompose1712142422_pswebapi_1 ...
1>Creating dockercompose1712142422_pswebapi_1
1>[1A[2K
1>Creating dockercompose1712142422_pswebapi_1 ... [31merror[0m
1>[1B
1>ERROR: for dockercompose1712142422_pswebapi_1 Cannot start service pswebapi: oci runtime error: container_linux.go:262: starting container process caused "process_linux.go:339: container init caused \"rootfs_linux.go:57: mounting \\\"/C/Users/tiagoperes/Documents/Visual Studio 2017/Projects/PsWebApi/PsWebApi\\\" to rootfs \\\"/var/lib/docker/overlay2/318ea1b0b7d0bbc13e75c543448338e655d825f58c41a88c5ca7d03680a16fac/merged\\\" at \\\"/app\\\" caused \\\"stat /C/Users/tiagoperes/Documents/Visual Studio 2017/Projects/PsWebApi/PsWebApi: host is down\\\"\""
1>ERROR: for pswebapi Cannot start service pswebapi: oci runtime error: container_linux.go:262: starting container process caused "process_linux.go:339: container init caused \"rootfs_linux.go:57: mounting \\\"/C/Users/tiagoperes/Documents/Visual Studio 2017/Projects/PsWebApi/PsWebApi\\\" to rootfs \\\"/var/lib/docker/overlay2/318ea1b0b7d0bbc13e75c543448338e655d825f58c41a88c5ca7d03680a16fac/merged\\\" at \\\"/app\\\" caused \\\"stat /C/Users/tiagoperes/Documents/Visual Studio 2017/Projects/PsWebApi/PsWebApi: host is down\\\"\""
1>Encountered errors while bringing up the project.
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: The "PrepareForLaunch" task failed unexpectedly.
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: Microsoft.DotNet.Docker.CommandLineClientException: Creating network "dockercompose1712142422_default" with the default driver
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: Building pswebapi
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: Creating dockercompose1712142422_pswebapi_1 ...
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: Creating dockercompose1712142422_pswebapi_1
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: [1A[2K
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: Creating dockercompose1712142422_pswebapi_1 ... [31merror[0m
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: [1B
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: ERROR: for dockercompose1712142422_pswebapi_1 Cannot start service pswebapi: oci runtime error: container_linux.go:262: starting container process caused "process_linux.go:339: container init caused \"rootfs_linux.go:57: mounting \\\"/C/Users/tiagoperes/Documents/Visual Studio 2017/Projects/PsWebApi/PsWebApi\\\" to rootfs \\\"/var/lib/docker/overlay2/318ea1b0b7d0bbc13e75c543448338e655d825f58c41a88c5ca7d03680a16fac/merged\\\" at \\\"/app\\\" caused \\\"stat /C/Users/tiagoperes/Documents/Visual Studio 2017/Projects/PsWebApi/PsWebApi: host is down\\\"\""
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: ERROR: for pswebapi Cannot start service pswebapi: oci runtime error: container_linux.go:262: starting container process caused "process_linux.go:339: container init caused \"rootfs_linux.go:57: mounting \\\"/C/Users/tiagoperes/Documents/Visual Studio 2017/Projects/PsWebApi/PsWebApi\\\" to rootfs \\\"/var/lib/docker/overlay2/318ea1b0b7d0bbc13e75c543448338e655d825f58c41a88c5ca7d03680a16fac/merged\\\" at \\\"/app\\\" caused \\\"stat /C/Users/tiagoperes/Documents/Visual Studio 2017/Projects/PsWebApi/PsWebApi: host is down\\\"\""
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: Encountered errors while bringing up the project..
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018:
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: For more troubleshooting information, go to http://aka.ms/DockerToolsTroubleshooting ---> Microsoft.DotNet.Docker.CommandLineClientException: Creating network "dockercompose1712142422_default" with the default driver
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: Building pswebapi
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: Creating dockercompose1712142422_pswebapi_1 ...
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: Creating dockercompose1712142422_pswebapi_1
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: [1A[2K
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: Creating dockercompose1712142422_pswebapi_1 ... [31merror[0m
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: [1B
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: ERROR: for dockercompose1712142422_pswebapi_1 Cannot start service pswebapi: oci runtime error: container_linux.go:262: starting container process caused "process_linux.go:339: container init caused \"rootfs_linux.go:57: mounting \\\"/C/Users/tiagoperes/Documents/Visual Studio 2017/Projects/PsWebApi/PsWebApi\\\" to rootfs \\\"/var/lib/docker/overlay2/318ea1b0b7d0bbc13e75c543448338e655d825f58c41a88c5ca7d03680a16fac/merged\\\" at \\\"/app\\\" caused \\\"stat /C/Users/tiagoperes/Documents/Visual Studio 2017/Projects/PsWebApi/PsWebApi: host is down\\\"\""
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: ERROR: for pswebapi Cannot start service pswebapi: oci runtime error: container_linux.go:262: starting container process caused "process_linux.go:339: container init caused \"rootfs_linux.go:57: mounting \\\"/C/Users/tiagoperes/Documents/Visual Studio 2017/Projects/PsWebApi/PsWebApi\\\" to rootfs \\\"/var/lib/docker/overlay2/318ea1b0b7d0bbc13e75c543448338e655d825f58c41a88c5ca7d03680a16fac/merged\\\" at \\\"/app\\\" caused \\\"stat /C/Users/tiagoperes/Documents/Visual Studio 2017/Projects/PsWebApi/PsWebApi: host is down\\\"\""
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: Encountered errors while bringing up the project.
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: at Microsoft.DotNet.Docker.DockerComposeClient.<ExecuteAsync>d__18.MoveNext()
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: --- End of inner exception stack trace ---
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: at Microsoft.DotNet.Docker.DockerComposeClient.<ExecuteAsync>d__18.MoveNext()
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: --- End of stack trace from previous location where exception was thrown ---
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: at Microsoft.DotNet.Docker.DockerWorkspace.<PrepareForLaunchAsync>d__14.MoveNext()
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: --- End of stack trace from previous location where exception was thrown ---
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: at Microsoft.DotNet.Docker.BuildTasks.DockerBaseTask.Execute()
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(192,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
1>Done building project "docker-compose.dcproj" -- FAILED.
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
Additional information
OS: Windows 10

