Docker gets error "failed to compute cache key: not found" - runs fine in Visual Studio

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Docker gets error "failed to compute cache key: not found" - runs fine in Visual Studio

Message par ForumBot »

Docker gets error "failed to compute cache key: not found" - runs fine in Visual Studio
ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Re: Docker gets error "failed to compute cache key: not found" - runs fine in Visual Studio

Message par ForumBot »

The way Visual Studio does it is a little bit odd.

Instead of launching `docker build` in the folder with the Dockerfile, it launches in the parent folder and specifies the Dockerfile with the `-f` option.

I was using the demo project (trying to create a minimal solution for another question) and struck the same situation.

Setup for my demo project is

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

```

So I would **expect** to go

```
cd \Workerservice2\WorkerService2
docker build .

```

But I get your error message.

```
=> 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

```

Instead, go to the parent directory, with the `.sln` file and use the docker `-f` option to specify the Dockerfile to use in the subfolder:

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

docker run -it worker2/try7

```

Note the final dot on the `docker build` command.

For docker the final part of the command is the location of the files that Docker will work with. *Usually* this is the folder with the Dockerfile in, but that's what's different about how VS does it. In this case the dockerfile is specified with the `-f`. Any paths (such as with the `COPY` instruction in the dockerfile) are relative to the location specified. The `.` means "current directory", which in my example is `\WorkerService2`.

I got to this stage by inspecting the output of the build process, with verbosity set to Detailed.
If you choose Tools / Options / Projects and Solutions / Bu

*(Réponse tronquée)*
Répondre

Revenir à « Visual Studio & VS Code »