当前位置: 首页 > 知识库问答 >
问题:

Docker-未能计算缓存密钥:未找到-在Visual Studio中运行正常

呼延珂
2023-03-14

我已经生成了一个带有视觉效果的Dockerfile

当我将复制更改为时/客户csproj它确实在继续,然后我得到:

我做错了什么?我将DockerLinux更改为Windows,更改了WSL,并重新启动了一切。

Dockerfile客户端

共有3个答案

南门鸿振
2023-03-14

请求不存在的目录会引发此错误。

就我而言,我试过了

 > [stage-1  7/14] COPY /.ssh/id_rsa.pub /.ssh/:
------
failed to compute cache key: "/.ssh/id_rsa.pub" not found: not found

我忘了添加/。ssh文件夹到项目目录。在您的情况下,您应该检查/client是否真的是Dockerfile构建上下文的子文件夹。

秦彦君
2023-03-14

VisualStudio的工作方式有点奇怪。

它不是在包含docker文件的文件夹中启动docker build,而是在父文件夹中启动,并使用-f选项指定docker文件。

我当时正在使用演示项目(试图为另一个问题创建一个最小的解决方案),遇到了同样的情况。

我的演示项目的设置是

\WorkerService2  ("solution" folder)
   +- WorkerService2.sln
   +- WorkserService2  ("project" folder)
       +- DockerFile
       +- WorkerService2.csproj
       +- ... other program files

所以我想去

cd \Workerservice2\WorkerService2
docker build .

但是我收到了你的错误信息。

 => ERROR [build 3/7] COPY [WorkerService2/WorkerService2.csproj, WorkerService2/]                                                                                                                        0.0s
------
 > [build 3/7] COPY [WorkerService2/WorkerService2.csproj, WorkerService2/]:
------
failed to compute cache key: "/WorkerService2/WorkerService2.csproj" not found: not found

相反,使用. sln文件转到父目录,并使用docker-f选项指定要在子文件夹中使用的Dockerfile:

cd \Workerservice2
docker build -f WorkerService2\Dockerfile --force-rm -t worker2/try7 .

docker run -it worker2/try7    

编辑(感谢Mike Loux, tblev

注意docker build命令上的最后一个点。

对于docker,命令的最后一部分是docker将处理的文件的位置。通常这是Dockerfile所在的文件夹,但这就是VS的不同之处。在这种情况下,dockerfile是用-f指定的。任何路径(例如dockerfile中的COPY指令)都是相对于指定位置的。表示“当前目录”,在我的示例中是\WorkerService 2

我是通过检查构建过程的输出到达这个阶段的,详细设置为详细。如果你选择工具/选项/项目和解决方案/构建和运行,你可以调整构建输出的详细程度,我详细介绍了我的。

高运诚
2023-03-14

检查你的dockerignore文件。它可能会忽略复制命令所需的文件,从而导致无法计算缓存密钥错误。

 类似资料:
  • 我是Docker的新手。我使用ASP创建了一个Web API。Net内核使用Visual Studio 2019以及VS代码。它很好用。然后我添加了docker支持,并添加了带有默认值的Dockerfile。 当我尝试构建docker映像时,它在Visual Studio 2019和VS代码中都失败了。 但是,如果我尝试使用VisualStudio2019提供的选项运行Docker映像(我可以在其

  • 我有下面的项目结构 我在中有一个目录名为。 我的Dockerfile如下: 在我运行下面的命令从这个docker文件构建图像之后 我得到了下面的错误 我的问题是为什么我有这个错误?以及如何解决它? 我在Windows 10 20H2 19042.964上使用了 我看到Docker-未能计算缓存密钥:未找到-在Visual Studio和一些内部链接中运行良好,但没有找到任何有用的东西。 我正在处理

  • 我让Jenkins在docker内部运行aws ec2实例。我正在使用以下命令启动Jenkins: 以下是我的文件: 在Jenkins作业日志中,当我运行作业时,我得到。如果我删除了第一阶段的“Docker权限”,那么我将开始获得以下。 /var/jenkins_home/workspacetest@tmp /durable-12345/script.sh: 1: /var/jenkins_hom

  • 问题内容: 在我的设置中,该命令向我显示以下内容: 我想找到没有到期日期的那三个键。我已经检查了文档无济于事。有任何想法吗? 问题答案: 从我现在找不到的网站修改。 编辑:注意,这是一个阻止呼叫。

  • 我找到了这么多与FileProvider相关的链接,但我没有找到缓存目录的解决方案 JAVAlang.IllegalArgumentException:未能找到包含 我想使用它的缓存目录,我怎么能给路径提供商。 我用它作为: 它的工作罚款,如果我给应用程序文件夹路径,但不与缓存目录工作。 有什么帮助吗?

  • 我面临将实体插入数据库的问题。我正在使用HibernateJPA。以下是我的数据库结构: 以下是我的映射: 我得到的例外情况是: 这是我的插入代码: 有人能看看我的映射并告诉我我做错了什么吗。请帮帮我。我刚开始冬眠。如果需要更多信息来追踪问题,请告诉我。 更新-------------------------------------------------------------------我试着