首先我使用.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。)
答案 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