VS 2017添加> Docker支持打破了构建 - " CleanWorkspace"任务意外失败(控制台应用)

时间:2017-03-21 19:57:33

标签: c# .net docker msbuild visual-studio-2017

首先我使用.NET 4.6.1。带有VS 2017的Docker是否不能与.NET Core一起使用?

我使用了上下文菜单中的新功能Add > Docker Support,它创建了一堆文件。这是我的Dockerfile(由于它是自动创建的,因此无法触及它):

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

当我构建时,我收到以下错误:

  

" CleanWorkspace"任务意外失败。   Microsoft.DotNet.Docker.CommandLineClientException:Compose文件   ' ... \泊坞窗,compose.yml'   因为:services.pas.parsemicroservice.build.context无效   包含null,这是一个无效的类型,它应该是一个字符串。

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

version: '2.1'

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

如果我向上下文添加.(因为错误意味着null存在问题),我会收到不同的错误:

  

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

这都是使用错误的.NET框架的结果,还是我的文件设置错误? (我确实是Docker n00b。)

1 个答案:

答案 0 :(得分:4)

更新:关于循环依赖项问题,请确保您的SLN和CSPROJ文件不在同一文件夹中。这意味着当您第一次创建解决方案时,请务必选中“#34;为解决方案创建目录"”框。

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

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

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