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

首先,我使用的是.NET 4.6.1.使用VS 2017的Docker是否不适用于除.NET Core之外的任何东西?

我使用了新功能Add> Docker支持从上下文菜单中创建了一堆文件.这是我的Dockerfile(因为它是自动创建的,所以没有触及它):

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文件不在同一文件夹中.这意味着当您第一次创建解决方案时,请务必选中“创建解决方案目录”框.

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

您的上下文应指向Dockerfile所在的目录.此路径应该与docker-compose.yml文件所在的位置相关.

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

上一篇:c# – Visual Studio AfterBuild生成代码的任务


下一篇:Asp.Net EF Code First 简单入门