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
首先,我使用的是 .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