VS 2017添加> Docker支持rest生成 – “CleanWorkspace”任务意外失败(控制台应用程序)

首先我使用.NET 4.6.1。 与VS 2017的Docker不能用于.NET Core吗?

我使用了上下文菜单中的新增functionAdd > Docker Support ,并创build了一堆文件。 这里是我的Dockerfile(自动创build以来没有触及它):

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

当我build立时,我得到以下错误:

“CleanWorkspace”任务意外失败。 Microsoft.DotNet.Docker.CommandLineClientException:撰写文件'… \ docker-compose.yml'是无效的,因为:services.pas.parsemicroservice.build.context包含null,这是一个无效types,它应该是一个string。

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

 version: '2.1' services: pas.parsemicroservice: image: pas.parsemicroservice build: context: dockerfile: Dockerfile 

如果我添加一个. 上下文(因为错误意味着null问题),我得到一个不同的错误:

涉及目标“DockerCleanServiceReferences”的目标依赖关系图中存在循环依赖关系。

这是所有使用错误的.NET框架的结果,还是我的文件设置错了? (我确实是一个Docker n00b)

更新 :关于您的循环依赖问题,请确保您的SLN和CSPROJ文件不在同一个文件夹中。 这意味着当你第一次创build一个解决scheme时,一定要选中“创build解决scheme的目录”。

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

你的context应该指向Dockerfile所在的目录。 这个path应该是相对于你的docker-compose.yml文件的位置。

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