Docker 构建计算缓存键失败
Docker build failed to compute cache key
我有以下项目结构
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 directory
中有一个目录,名称是 app.publish
。
我的 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
我看到了 and some internal links,但是没有找到任何有用的东西。
我正在解决我的问题并发现一些相同的问题,例如 Dockerfile can’t copy specified local directory & file or Windows Docker Dockerfile COPY file inside folder.
,我发现了我的问题。问题是 dockerignore 文件包含一些不能与 COPY
文件名匹配的模式。
我的问题是 dockerignore 文件中的模式与 bin/app.publish
错误匹配。为了解决我的问题,我只是更改了 dockerignore 中的模式。
这可能对其他人有一些帮助:
我正在使用 dockerfile 构建 .NET Core 应用程序,并且一直在进行一些重命名。我收到“无法计算缓存键”错误,因为 dockerfile 中的文件名不再匹配我为目标文件指定的新名称。
一旦我修复了 dockerfile 中的命名,一切都按预期措辞。
我有以下项目结构
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 directory
中有一个目录,名称是 app.publish
。
我的 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
我看到了
我正在解决我的问题并发现一些相同的问题,例如 Dockerfile can’t copy specified local directory & file or Windows Docker Dockerfile COPY file inside folder.
COPY
文件名匹配的模式。
我的问题是 dockerignore 文件中的模式与 bin/app.publish
错误匹配。为了解决我的问题,我只是更改了 dockerignore 中的模式。
这可能对其他人有一些帮助:
我正在使用 dockerfile 构建 .NET Core 应用程序,并且一直在进行一些重命名。我收到“无法计算缓存键”错误,因为 dockerfile 中的文件名不再匹配我为目标文件指定的新名称。
一旦我修复了 dockerfile 中的命名,一切都按预期措辞。