VS 2017 添加 > Docker 支持中断构建 - "CleanWorkspace" 任务意外失败(控制台应用程序)

VS 2017 Add > Docker Support breaks build - "CleanWorkspace" task failed unexpectedly (console app)

首先,我使用的是 .NET 4.6.1。 Docker 与 VS 2017 是否只适用于 .NET Core?

我使用了上下文菜单中的新功能 Add > Docker Support,它创建了一堆文件。这是我的 Docker 文件(因为它是自动创建的,所以没有碰过它):

FROM microsoft/windowsservercore
ARG source
WORKDIR /app
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["C:\app\nameofmyapp.exe"]

构建时出现以下错误:

The "CleanWorkspace" task failed unexpectedly. Microsoft.DotNet.Docker.CommandLineClientException: The Compose file '...\docker-compose.yml' is invalid because: services.pas.parsemicroservice.build.context contains null, which is an invalid type, it should be a string.

这是我的 docker-compose.yml 文件:

version: '2.1'

services:
  pas.parsemicroservice:
    image: pas.parsemicroservice
    build:
      context: 
      dockerfile: Dockerfile

如果我在上下文中添加 .(因为错误暗示 null 存在问题),我会得到一个不同的错误:

There is a circular dependency in the target dependency graph involving target "DockerCleanServiceReferences".

这都是使用错误的 .NET 框架造成的,还是我的文件设置有误? (可以肯定的是,我是 Docker n00b。)

更新:关于你的循环依赖问题,确保你的SLN和CSPROJ文件不在同一个文件夹中。这意味着当您第一次创建解决方案时,请确保选中显示 "create directory for solution".

的框

Docker 对非 .Net Core 应用程序的支持在 VS 2017 中绝对支持,如本视频 9:15 标记所示 https://channel9.msdn.com/Events/Visual-Studio/Visual-Studio-2017-Launch/T111

您的 context 应该指向您的 Dockerfile 所在的目录。此路径应相对于 docker-compose.yml 文件所在的位置。

Compose 文件版本 2 参考:https://docs.docker.com/compose/compose-file/compose-file-v2/#context