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

Docker build无法计算缓存密钥

陆俊智
2023-03-14

我有下面的项目结构

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         4/22/2021   1:49 PM                App_Start
d-----         3/20/2020   3:35 PM                Areas
d-----          5/4/2021   7:01 PM                bin
d-----         3/20/2020   3:35 PM                Content
d-----          5/4/2021   5:59 PM                Controllers
d-----         3/20/2020   3:35 PM                fonts
d-----         8/20/2020   9:43 PM                obj
d-----          7/9/2020   8:43 PM                Properties
d-----         3/20/2020   3:35 PM                Scripts
d-----         3/20/2020   3:35 PM                Views
-a----          5/4/2021   6:00 PM             46 .dockerignore
-a----          5/4/2021   6:00 PM          45239 foo.csproj
-a----          5/4/2021  11:21 PM           1621 foo.csproj.user
-a----         4/22/2021   1:49 PM            390 ConnectionStrings.config
-a----          5/5/2021  12:17 AM            375 Dockerfile
-a----         3/20/2020   3:35 PM            116 Global.asax
-a----         3/20/2020   3:35 PM            717 Global.asax.cs
-a----         8/13/2020   1:05 PM           1770 NLog.config
-a----         3/20/2020   3:35 PM         159853 NLog.xsd
-a----          5/4/2021   6:00 PM           9217 packages.config
-a----         3/20/2020   3:35 PM          12294 UnityConfiguration30.xsd
-a----          5/4/2021   6:00 PM          29650 Web.config
-a----         3/20/2020   3:35 PM           1308 Web.Debug.config
-a----         3/20/2020   3:35 PM            705 Web.Release.config

我在bin目录中有一个目录名为app。发布

我的Dockerfile如下:

#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
#For more information, please see https://aka.ms/containercompat

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
ARG source
WORKDIR /inetpub/wwwroot
COPY bin/app.publish .

在我运行下面的命令从这个docker文件构建图像之后

docker build -t soroshsabz/testcoreservice .

我得到了下面的错误

[+] Building 15.1s (7/7) FINISHED
 => [internal] load build definition from Dockerfile                                                               0.1s
 => => transferring dockerfile: 414B                                                                               0.0s
 => [internal] load .dockerignore                                                                                  0.1s
 => => transferring context: 34B                                                                                   0.0s
 => [internal] load metadata for mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019         14.9s
 => [1/3] FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019@sha256:e1475e80eb3cbdfd81  0.1s
 => => resolve mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019@sha256:e1475e80eb3cbdfd81  0.1s
 => [internal] load build context                                                                                  0.1s
 => => transferring context: 2B                                                                                    0.0s
 => CACHED [2/3] WORKDIR /inetpub/wwwroot                                                                          0.0s
 => ERROR [3/3] COPY bin/app.publish .                                                                             0.0s
------
 > [3/3] COPY bin/app.publish .:
------
failed to compute cache key: "/bin/app.publish" not found: not found

我的问题是为什么我有这个错误?以及如何解决它?

我在Windows 10 20H2 19042.964上使用了Docker Engine Community 20.10.6

我看到Docker-未能计算缓存密钥:未找到-在Visual Studio和一些内部链接中运行良好,但没有找到任何有用的东西。

我正在处理我的问题,并发现一些相同的问题,如Dockerfile无法复制指定的本地目录

共有2个答案

翟黎明
2023-03-14

这可能对其他人有所帮助:

我正在建造一个。NET核心应用程序,并已进行了一些重命名。我遇到了“计算缓存密钥失败”错误,因为dockerfile中的文件名不再与我为目标文件提供的新名称匹配。

一旦我修复了dockerfile中的命名,一切都如预期的那样措辞。

陶高峻
2023-03-14

多亏了BMitch,我发现了我的问题。问题是dockerignore文件包含的某些模式必须与COPY文件名不匹配。

我的问题是Dockrignore文件中的模式与bin/app错误匹配。发布。为了解决我的问题,我只是改变了Dockrignore中的模式。

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

  • 我有一个Spring应用程序,它使用MyBatis进行持久化。我使用ehcache是因为速度对于这个应用程序很重要。我已经设置并配置了MyBatis和Ehcache。我使用一个名为“mybatis”的单一缓存,因为否则为每个实体创建单独的缓存将是荒谬的。 这是我的电子缓存。xml。 这是我的mybatis映射器界面的一个示例。 因为我有一个共享缓存,所以我需要一种方法使我的密钥对域对象是唯一的。作

  • Itinerary类存储有关具有以下成员的旅程的信息: •一个名为flights的私有ArrayList数据字段,其中包含按DepartureTime递增顺序排列的旅程航班。(提示:您不需要进行排序。) •使用ArrayList类型的指定航班创建旅程的构造函数。 •名为getTotalFlightTime()的方法,以分钟为单位返回旅程的总飞行时间。(提示:为每个飞行对象调用getFlightTi

  • 问题内容: 我在使用注释的缓存键在Spring中发生冲突时遇到问题。例如,使用以下两种方法: 这是我的缓存配置,其中添加了一个和一个bean: 由于某种原因,缓存键始终设置为方法中的参数,而不是方法的结果,从而导致两个方法返回相同的缓存结果。 我知道我可以在每个注释上手动指定键,但是对于我想要缓存的每种方法来说,这似乎有点扩展。 编辑 我注意到,将注释内的选项设置为我的bean的名称可以解决此问题

  • 我已经生成了一个带有视觉效果的Dockerfile 当我将复制更改为它确实在继续,然后我得到: 我做错了什么?我将DockerLinux更改为Windows,更改了WSL,并重新启动了一切。 Dockerfile客户端

  • 根据link,在spring boot中使用缓存的最简单配置是使用CacheManager(缓存映射将在这个类中初始化): 在: 但它抛出: 编辑:如果我在cacheManager中分配一个cacheName,并在建议的方法中使用它,异常就消失了。但是bean中的所有方法都将被缓存,而我只在一个方法上分配了。