moby / buildkit

concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit
https://github.com/moby/moby/issues/34227
Apache License 2.0
8.19k stars 1.16k forks source link

Docker build failed to compute cache key #2104

Closed soroshsabz closed 3 years ago

soroshsabz commented 3 years ago

ITNOA

Hi,

I have below project structure

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      

And I have one directory in bin directory that name is app.publish. And my Dockerfile is like below

#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 .

After I run below command to build image from this docker file

docker build -t soroshsabz/testcoreservice .

I got below error

[+] 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

My question is why I got this error? and how to resolve it?

I use Docker Engine Community 20.10.6 on Windows 10 20H2 19042.964

I write this problem in Docker build failed to compute cache key too.

---Update:

I see docker - failed to compute cache key: not found - runs fine in visual studio and some internal links but does not found any useful things.

I am binging my problem and find some same problem like Dockerfile can’t copy specified local directory & file or Windows Docker Dockerfile COPY file inside folder

Thanks

soroshsabz commented 3 years ago

Ok, thanks to BMitch my problem is in dockerignore file that ignore wrong files (ignore files match with app.publish)

ManfredLange commented 2 years ago

In my environment my mistake was to use an absolute path as the source for the COPY command. Changing it to a relative path, which is the right thing anyways, fixed it.

.dockerignore was not the culprit in my case.